منصوبے کے بارے میں
@rapidrest/core پیکیج RapidREST ایکو سسٹم میں RESTful ایپلی کیشنز بنانے کے لیے عام یوٹیلیٹیز اور بنیادی فنکشنلٹی کا مجموعہ ہے۔ یہ دیگر RapidREST لائبریریز اور سروسز کے لیے بنیادی building blocks فراہم کرتا ہے، بشمول dependency injection، کیشنگ، authentication، میسجنگ، observability، اور جنرل پرپز ہیلپرز۔
**Object Lifecycle اور Dependency Injection**
اس لائبریری میں ایک ClassLoader شامل ہے جو فولڈر-بیسڈ namespace کنونشنز کا استعمال کرتے ہوئے رن ٹائم پر کلاسز کو متحرک طور پر دریافت کرتا ہے، اور ایک ObjectFactory لائٹ ویٹ DI کنٹینر ہے۔ Dependencies کو ڈیکوریٹرز (@Inject, @Config, @Logger) کے ذریعے انجیکٹ کیا جا سکتا ہے، اور آبجیکٹ لائف سائیکل کو @Init اور @Destroy کے ذریعے مینیج کیا جاتا ہے۔
**Caching اور Session Storage**
ایک مشترکہ SimpleStore انٹرفیس TTL-بیسڈ ریکارڈ اسٹوریج کو سپورٹ کرتا ہے جس کی دو implementations ہیں: ان-پروسیس اسٹوریج کے لیے MemoryStore اور متعدد ایپلی کیشن انسٹنسز کے درمیان اسٹیٹ شیئر کرنے کے لیے RedisStore جو Redis پر مبنی ہے۔ loadMany، saveMany، loadSet، اور saveSet جیسے بلک آپریشنز دستیاب ہیں۔
**Auth اور Validation**
JWTUtils کے ذریعے JSON Web Tokens کی تخلیق، سائننگ، تصدیق اور ڈی کوڈنگ کی جاتی ہے، جس میں پاس ورڈ یا کی-بیسڈ پے لوڈ انکرپشن اور کمپریشن کا آپشن موجود ہے۔ UserUtils رول، اسکوپ، اور آرگنائزیشن ممبرشپ چیک فراہم کرتا ہے۔ ValidationUtils ای میل، URL، فون، UUID، سیمیٹک ورژن، IP، تاریخ، JSON اور بہت سے دوسرے ویلیڈیٹرز کی لائبریری فراہم کرتا ہے، جسے @Validator ڈیکوریٹر کے ساتھ استعمال کیا جا سکتا ہے۔
**Messaging اور Alerting**
MessagingUtils ایک مشترکہ ٹیمپلیٹ اسٹور سے ای میل، SMS، یا Slack کے ذریعے ٹیمپلیٹ شدہ پیغامات (Handlebars) بھیجتا ہے۔ AlertUtils بیرونی الرٹنگ سروسز کو فائل اٹیچمنٹس کے ساتھ ترجیحی بنیادوں پر انسیڈنٹ الرٹس (P1–P5) بھیجتا ہے۔ NotificationUtils ریڈس pub/sub کے ذریعے انفرادی صارف چینلز یا تمام سبسکرائبرز کے لیے ریئل ٹائم پش نوٹیفیکیشنز شائع کرتا ہے۔
**Observability**
ایک پری-کنفیگرڈ Winston Logger خود بخود لاگ لائنز کو کال کرنے والی کلاس اور میتھڈ کے نام کے ساتھ ٹیگ کرتا ہے۔ TelemetryUtils ایپلی کیشن ٹیلی میٹری ایونٹس کو ریکارڈ کرتا ہے اور انہیں ایک کنفیگرڈ کلیکشن سروس کو فارورڈ کرتا ہے۔
**General Utilities**
اس میں StringUtils، ObjectUtils، FileUtils، OASUtils (OpenAPI specs کو لوڈ، کیش اور کوئری کرنے کے لیے)، CacheUtils (باؤنڈڈ ایویکشن کیشز)، اور ایک ApiError کلاس (HTTP-aware جس میں اسٹیٹس کوڈ اور ٹیمپلیٹ شدہ پیغامات شامل ہیں) شامل ہیں۔
**Concurrency**
ایک ThreadPool Node.js ورکر تھریڈز کے پول کو مینیج کرتا ہے، جو CPU کاؤنٹ کے مطابق آٹو-سائزڈ ہوتا ہے، جس میں ٹائپڈ میسج پاسنگ اور ورکر کریش ہونے پر خودکار ری اسٹارٹ کی سہولت موجود ہے۔
یہ پیکیج صرف ESM ہے اور Node.js >=24.0.0 کو ٹارگٹ کرتا ہے۔ ضروری peer dependencies میں axios، redis (RedisStore کے لیے)، reflect-metadata، winston، اور winston-transport شامل ہیں۔ میسجنگ چینلز ضرورت کے مطابق اختیاری پیکیجز (nodemailer, twilio, @slack/bolt) کو متحرک طور پر لوڈ کرتے ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.