عن المشروع

nestx-amqp يوفر اتصال AMQP كوحدة NestJS، باستخدام amqp-connection-manager داخليًا. وهو منشور على npm ومرخص تحت MIT License. الميزات - يوفر AmqpModule الذي ينشئ AmqpConnectionManager بشكل غير متزامن. - يوفر مدير اتصال AMQP قابل للحقن عالميًا. - يوفر مزخرفات طرق مثل @PublishQueue و @SubscribeQueue للاستخدام البسيط. التثبيت - yarn add nestx-amqp الاستخدام - سجل الوحدة بشكل غير متزامن باستخدام AmqpModule.forRootAsync، مع توفير روابط الاتصال (مثال: amqp://guest:guest@localhost:5672?heartbeat=60). - احقن مدير الاتصال باستخدام رمز AMQP_CONNECTION. يوضح README منتجًا مجردًا ينشئ قناة مع json:true ودالة إعداد تؤكد وجود قائمة انتظار، وينتظر الاتصال، ويرسل رسائل إلى قائمة الانتظار. المزخرفات - @PublishQueue(queue: string | Queue, options?: amqplib.Options.Publish) هو مزخرف طريقة لنشر رسالة إلى قائمة انتظار. تستقبل الطريقة المزخرفة المحتوى وخيارات النشر الاختيارية. - @SubscribeQueue(nameOrQueue: string | Queue, options?: ConsumeQueueOptions) هو مزخرف طريقة لاستهلاك الرسائل، مع منطق إعادة وضع بسيط. يجمع ConsumeQueueOptions بين prefetch، وexceptionQueue اختياري، وإعدادات إعادة المحاولة الاختيارية (maxAttempts). - @PublishExchange(exchange: string | Exchange, options?: PublishExchangeOptions) ينشر إلى تبادل؛ يذكر README أنه غير مستقر ويشير إلى اختبارات الوحدة للاستخدام. - @UseAmqpConnection(name?: string) يحدد الاتصال المسمى الذي سيستخدم مع @PublishQueue أو @SubscribeQueue، ويوصى به عند تطوير حزم npm التي تحتاج اتصالًا مسمى محددًا. الواجهات - Queue: الاسم وخيارات AssertQueue الاختيارية. - Exchange: الاسم والنوع (direct، fanout، topic، headers) وخيارات AssertExchange الاختيارية. - PublishExchangeOptions: routingKey وخيارات Publish الاختيارية. - RetryOptions: maxAttempts. - BaseConsumeOptions: prefetch وexceptionQueue اختياري. ملاحظات - يذكر README أن دعم المزخرفات يغطي حاليًا فقط نشر واستهلاك قوائم الانتظار المباشرة. - تتطلب الأمثلة تسجيل وتفعيل AmqpModule. - يُقال إن التفاصيل الإضافية متاحة في حالات اختبار الوحدة، ويُشار إلى CHANGELOG.md.