UNPKG

@tresdoce-nestjs-toolkit/aws-sqs

Version:

Tresdoce NestJS Toolkit - Módulo de cola de mensajes de AWS Simple Queue Service

43 lines (42 loc) 1.47 kB
import { Provider } from '@nestjs/common'; /** * Factory function to create providers for AWS SQS queues. * This function uses the `AWS_SQS_MODULE_OPTIONS` configuration to dynamically map * each queue into a NestJS provider. The resulting providers can be injected * into other parts of the application by their unique identifiers. * * @returns An array of NestJS providers for the configured SQS queues. * * @example * // AWS SQS Module Configuration * const sqsOptions = { * region: 'us-east-1', * queues: [ * { name: 'orders', url: 'https://sqs.us-east-1.amazonaws.com/123456/orders' }, * { name: 'notifications', url: 'https://sqs.us-east-1.amazonaws.com/123456/notifications' }, * ], * }; * * // Providers created by this function * [ * { provide: 'AWS_SQS_QUEUE_ORDERS', useValue: { name: 'orders', url: 'https://sqs...' } }, * { provide: 'AWS_SQS_QUEUE_NOTIFICATIONS', useValue: { name: 'notifications', url: 'https://sqs...' } }, * ]; * * @example * // Injecting a queue into a service * import { Inject, Injectable } from '@nestjs/common'; * import { QueueConfig } from '../interfaces/aws-sqs.interface'; * * @Injectable() * export class OrdersService { * constructor( * @Inject('AWS_SQS_QUEUE_ORDERS') private readonly ordersQueue: QueueConfig, * ) {} * * getQueueUrl(): string { * return this.ordersQueue.url; * } * } */ export declare const createQueueProviders: () => Provider[];