@amqp-contract/worker-nestjs 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +7 -7
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +7 -7
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/docs/index.md +30 -30
- package/package.json +4 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AmqpConnectionManagerOptions, ConnectionUrl } from "amqp-connection-manager";
|
|
2
2
|
import { DynamicModule, ModuleMetadata, OnModuleDestroy, OnModuleInit, Type } from "@nestjs/common";
|
|
3
3
|
import { WorkerInferSafeConsumerHandlers, WorkerInferSafeConsumerHandlers as WorkerInferSafeConsumerHandlers$1, defineHandler, defineHandlers } from "@amqp-contract/worker";
|
|
4
|
-
import {
|
|
4
|
+
import { ContractDefinitionInput } from "@amqp-contract/contract";
|
|
5
5
|
|
|
6
6
|
//#region src/worker.service.d.ts
|
|
7
7
|
|
|
@@ -27,7 +27,7 @@ import { ContractDefinition } from "@amqp-contract/contract";
|
|
|
27
27
|
* };
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
type AmqpWorkerModuleOptions<TContract extends
|
|
30
|
+
type AmqpWorkerModuleOptions<TContract extends ContractDefinitionInput> = {
|
|
31
31
|
/** The AMQP contract definition specifying consumers and their message schemas */
|
|
32
32
|
contract: TContract;
|
|
33
33
|
/** Message handlers for each consumer defined in the contract. Use defineHandlers to create type-safe handlers. */
|
|
@@ -71,7 +71,7 @@ type AmqpWorkerModuleOptions<TContract extends ContractDefinition> = {
|
|
|
71
71
|
* // and stops gracefully when the application shuts down
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
74
|
-
declare class AmqpWorkerService<TContract extends
|
|
74
|
+
declare class AmqpWorkerService<TContract extends ContractDefinitionInput> implements OnModuleInit, OnModuleDestroy {
|
|
75
75
|
private readonly options;
|
|
76
76
|
private worker;
|
|
77
77
|
constructor(options: AmqpWorkerModuleOptions<TContract>);
|
|
@@ -100,11 +100,11 @@ declare class AmqpWorkerService<TContract extends ContractDefinition> implements
|
|
|
100
100
|
/**
|
|
101
101
|
* Factory function return type for async module configuration
|
|
102
102
|
*/
|
|
103
|
-
type AmqpWorkerModuleOptionsFactory<TContract extends
|
|
103
|
+
type AmqpWorkerModuleOptionsFactory<TContract extends ContractDefinitionInput> = AmqpWorkerModuleOptions<TContract> | Promise<AmqpWorkerModuleOptions<TContract>>;
|
|
104
104
|
/**
|
|
105
105
|
* Options for async module configuration using factory pattern
|
|
106
106
|
*/
|
|
107
|
-
type AmqpWorkerModuleAsyncOptions<TContract extends
|
|
107
|
+
type AmqpWorkerModuleAsyncOptions<TContract extends ContractDefinitionInput> = {
|
|
108
108
|
/**
|
|
109
109
|
* Factory function that returns the module options.
|
|
110
110
|
* Can use injected dependencies to create configuration.
|
|
@@ -174,14 +174,14 @@ declare class AmqpWorkerModule {
|
|
|
174
174
|
* @param options - The worker configuration options with contract and handlers
|
|
175
175
|
* @returns A dynamic module for NestJS
|
|
176
176
|
*/
|
|
177
|
-
static forRoot<TContract extends
|
|
177
|
+
static forRoot<TContract extends ContractDefinitionInput>(options: AmqpWorkerModuleOptions<TContract>): DynamicModule;
|
|
178
178
|
/**
|
|
179
179
|
* Register the AMQP worker module with asynchronous configuration
|
|
180
180
|
*
|
|
181
181
|
* @param options - Async configuration options with factory function
|
|
182
182
|
* @returns A dynamic module for NestJS
|
|
183
183
|
*/
|
|
184
|
-
static forRootAsync<TContract extends
|
|
184
|
+
static forRootAsync<TContract extends ContractDefinitionInput>(options: AmqpWorkerModuleAsyncOptions<TContract>): DynamicModule;
|
|
185
185
|
}
|
|
186
186
|
//#endregion
|
|
187
187
|
//#region src/worker.module-definition.d.ts
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/worker.service.ts","../src/worker.module.ts","../src/worker.module-definition.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AA4BA;;;;;;;;AA6CA;;;;;;;;;;;;AC3DK,KDcO,uBCdP,CAAA,kBDciD,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/worker.service.ts","../src/worker.module.ts","../src/worker.module-definition.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AA4BA;;;;;;;;AA6CA;;;;;;;;;;;;AC3DK,KDcO,uBCdP,CAAA,kBDciD,uBCdnB,CAAA,GAAA;EAAmB;EAC1B,QAAA,EDehB,SCfgB;EAAxB;EACgC,QAAA,EDgBxB,iCChBwB,CDgBQ,SChBR,CAAA;EAAxB;EAAR,IAAA,EDkBI,aClBJ,EAAA;EAAO;EAKC,iBAAA,CAAA,EDeU,4BCfkB,GAAA,SAAA;CAAmB;;;;;;AAiE3D;;;;;;;;;;;;;AClFA;;;;;;;;;;;;;;;;cFsEa,oCAAoC,oCACpC,cAAc;;;uBAMG,wBAAwB;;;;;;;;;;;kBAa9B;;;;;;;;qBAWG;;;;;;;AA7E3B,KCdK,8BDc8B,CAAA,kBCdmB,uBDcnB,CAAA,GCb/B,uBDa+B,CCbP,SDaO,CAAA,GCZ/B,ODY+B,CCZvB,uBDYuB,CCZC,SDYD,CAAA,CAAA;;;;AAIvB,KCXA,4BDWA,CAAA,kBCX+C,uBDW/C,CAAA,GAAA;EAEJ;;;AAuCR;EACiD,UAAA,EAAA,CAAA,GAAA,IAAA,EAAA,GAAA,EAAA,EAAA,GC/Cf,8BD+Ce,CC/CgB,SD+ChB,CAAA;EAOK;;;;EANzC,MAAA,CAAA,EAAA,CAAA,MAAA,GAAA,MAAA,GC3CiB,ID2CjB,CAAA,OAAA,CAAA,CAAA,EAAA;EAAc;;;YCvCf;;AA5B2D;;;;;;;;AAavE;;;;;;;AAiEA;;;;;;;;;;;;;AClFA;;;;;;;;;;;;;;;;;;;cDmFa,gBAAA;;;;;;;mCAOsB,kCACtB,wBAAwB,aAChC;;;;;;;wCAoBmC,kCAC3B,6BAA6B,aACrC;;;;;;;;cClHQ"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DynamicModule, ModuleMetadata, OnModuleDestroy, OnModuleInit, Type } from "@nestjs/common";
|
|
2
2
|
import { WorkerInferSafeConsumerHandlers, WorkerInferSafeConsumerHandlers as WorkerInferSafeConsumerHandlers$1, defineHandler, defineHandlers } from "@amqp-contract/worker";
|
|
3
3
|
import { AmqpConnectionManagerOptions, ConnectionUrl } from "amqp-connection-manager";
|
|
4
|
-
import {
|
|
4
|
+
import { ContractDefinitionInput } from "@amqp-contract/contract";
|
|
5
5
|
|
|
6
6
|
//#region src/worker.service.d.ts
|
|
7
7
|
|
|
@@ -27,7 +27,7 @@ import { ContractDefinition } from "@amqp-contract/contract";
|
|
|
27
27
|
* };
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
type AmqpWorkerModuleOptions<TContract extends
|
|
30
|
+
type AmqpWorkerModuleOptions<TContract extends ContractDefinitionInput> = {
|
|
31
31
|
/** The AMQP contract definition specifying consumers and their message schemas */
|
|
32
32
|
contract: TContract;
|
|
33
33
|
/** Message handlers for each consumer defined in the contract. Use defineHandlers to create type-safe handlers. */
|
|
@@ -71,7 +71,7 @@ type AmqpWorkerModuleOptions<TContract extends ContractDefinition> = {
|
|
|
71
71
|
* // and stops gracefully when the application shuts down
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
74
|
-
declare class AmqpWorkerService<TContract extends
|
|
74
|
+
declare class AmqpWorkerService<TContract extends ContractDefinitionInput> implements OnModuleInit, OnModuleDestroy {
|
|
75
75
|
private readonly options;
|
|
76
76
|
private worker;
|
|
77
77
|
constructor(options: AmqpWorkerModuleOptions<TContract>);
|
|
@@ -100,11 +100,11 @@ declare class AmqpWorkerService<TContract extends ContractDefinition> implements
|
|
|
100
100
|
/**
|
|
101
101
|
* Factory function return type for async module configuration
|
|
102
102
|
*/
|
|
103
|
-
type AmqpWorkerModuleOptionsFactory<TContract extends
|
|
103
|
+
type AmqpWorkerModuleOptionsFactory<TContract extends ContractDefinitionInput> = AmqpWorkerModuleOptions<TContract> | Promise<AmqpWorkerModuleOptions<TContract>>;
|
|
104
104
|
/**
|
|
105
105
|
* Options for async module configuration using factory pattern
|
|
106
106
|
*/
|
|
107
|
-
type AmqpWorkerModuleAsyncOptions<TContract extends
|
|
107
|
+
type AmqpWorkerModuleAsyncOptions<TContract extends ContractDefinitionInput> = {
|
|
108
108
|
/**
|
|
109
109
|
* Factory function that returns the module options.
|
|
110
110
|
* Can use injected dependencies to create configuration.
|
|
@@ -174,14 +174,14 @@ declare class AmqpWorkerModule {
|
|
|
174
174
|
* @param options - The worker configuration options with contract and handlers
|
|
175
175
|
* @returns A dynamic module for NestJS
|
|
176
176
|
*/
|
|
177
|
-
static forRoot<TContract extends
|
|
177
|
+
static forRoot<TContract extends ContractDefinitionInput>(options: AmqpWorkerModuleOptions<TContract>): DynamicModule;
|
|
178
178
|
/**
|
|
179
179
|
* Register the AMQP worker module with asynchronous configuration
|
|
180
180
|
*
|
|
181
181
|
* @param options - Async configuration options with factory function
|
|
182
182
|
* @returns A dynamic module for NestJS
|
|
183
183
|
*/
|
|
184
|
-
static forRootAsync<TContract extends
|
|
184
|
+
static forRootAsync<TContract extends ContractDefinitionInput>(options: AmqpWorkerModuleAsyncOptions<TContract>): DynamicModule;
|
|
185
185
|
}
|
|
186
186
|
//#endregion
|
|
187
187
|
//#region src/worker.module-definition.d.ts
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/worker.service.ts","../src/worker.module.ts","../src/worker.module-definition.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AA4BA;;;;;;;;AA6CA;;;;;;;;;;;;AC3DK,KDcO,uBCdP,CAAA,kBDciD,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/worker.service.ts","../src/worker.module.ts","../src/worker.module-definition.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AA4BA;;;;;;;;AA6CA;;;;;;;;;;;;AC3DK,KDcO,uBCdP,CAAA,kBDciD,uBCdnB,CAAA,GAAA;EAAmB;EAC1B,QAAA,EDehB,SCfgB;EAAxB;EACgC,QAAA,EDgBxB,iCChBwB,CDgBQ,SChBR,CAAA;EAAxB;EAAR,IAAA,EDkBI,aClBJ,EAAA;EAAO;EAKC,iBAAA,CAAA,EDeU,4BCfkB,GAAA,SAAA;CAAmB;;;;;;AAiE3D;;;;;;;;;;;;;AClFA;;;;;;;;;;;;;;;;cFsEa,oCAAoC,oCACpC,cAAc;;;uBAMG,wBAAwB;;;;;;;;;;;kBAa9B;;;;;;;;qBAWG;;;;;;;AA7E3B,KCdK,8BDc8B,CAAA,kBCdmB,uBDcnB,CAAA,GCb/B,uBDa+B,CCbP,SDaO,CAAA,GCZ/B,ODY+B,CCZvB,uBDYuB,CCZC,SDYD,CAAA,CAAA;;;;AAIvB,KCXA,4BDWA,CAAA,kBCX+C,uBDW/C,CAAA,GAAA;EAEJ;;;AAuCR;EACiD,UAAA,EAAA,CAAA,GAAA,IAAA,EAAA,GAAA,EAAA,EAAA,GC/Cf,8BD+Ce,CC/CgB,SD+ChB,CAAA;EAOK;;;;EANzC,MAAA,CAAA,EAAA,CAAA,MAAA,GAAA,MAAA,GC3CiB,ID2CjB,CAAA,OAAA,CAAA,CAAA,EAAA;EAAc;;;YCvCf;;AA5B2D;;;;;;;;AAavE;;;;;;;AAiEA;;;;;;;;;;;;;AClFA;;;;;;;;;;;;;;;;;;;cDmFa,gBAAA;;;;;;;mCAOsB,kCACtB,wBAAwB,aAChC;;;;;;;wCAoBmC,kCAC3B,6BAA6B,aACrC;;;;;;;;cClHQ"}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["AmqpWorkerService","AmqpWorkerModule"],"sources":["../src/worker.module-definition.ts","../src/worker.service.ts","../src/worker.module.ts"],"sourcesContent":["/**\n * Injection token for AMQP worker module options\n * Used by NestJS DI system to inject configuration into AmqpWorkerService\n */\nexport const MODULE_OPTIONS_TOKEN = Symbol(\"AMQP_WORKER_MODULE_OPTIONS\");\n","import type { AmqpConnectionManagerOptions, ConnectionUrl } from \"amqp-connection-manager\";\nimport { Inject, Injectable, type OnModuleDestroy, type OnModuleInit } from \"@nestjs/common\";\nimport { TypedAmqpWorker, type WorkerInferSafeConsumerHandlers } from \"@amqp-contract/worker\";\nimport type {
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["AmqpWorkerService","AmqpWorkerModule"],"sources":["../src/worker.module-definition.ts","../src/worker.service.ts","../src/worker.module.ts"],"sourcesContent":["/**\n * Injection token for AMQP worker module options\n * Used by NestJS DI system to inject configuration into AmqpWorkerService\n */\nexport const MODULE_OPTIONS_TOKEN = Symbol(\"AMQP_WORKER_MODULE_OPTIONS\");\n","import type { AmqpConnectionManagerOptions, ConnectionUrl } from \"amqp-connection-manager\";\nimport { Inject, Injectable, type OnModuleDestroy, type OnModuleInit } from \"@nestjs/common\";\nimport { TypedAmqpWorker, type WorkerInferSafeConsumerHandlers } from \"@amqp-contract/worker\";\nimport type { ContractDefinitionInput } from \"@amqp-contract/contract\";\nimport { MODULE_OPTIONS_TOKEN } from \"./worker.module-definition.js\";\n\n/**\n * Configuration options for the AMQP worker NestJS module.\n *\n * @typeParam TContract - The contract definition type\n *\n * @example\n * ```typescript\n * import { defineHandlers, RetryableError } from '@amqp-contract/worker';\n * import { Future } from '@swan-io/boxed';\n *\n * const options: AmqpWorkerModuleOptions<typeof contract> = {\n * contract: myContract,\n * handlers: defineHandlers(myContract, {\n * processOrder: ({ payload }) =>\n * Future.fromPromise(processPayment(payload))\n * .mapOk(() => undefined)\n * .mapError((error) => new RetryableError('Payment failed', error))\n * }),\n * urls: ['amqp://localhost'],\n * };\n * ```\n */\nexport type AmqpWorkerModuleOptions<TContract extends ContractDefinitionInput> = {\n /** The AMQP contract definition specifying consumers and their message schemas */\n contract: TContract;\n /** Message handlers for each consumer defined in the contract. Use defineHandlers to create type-safe handlers. */\n handlers: WorkerInferSafeConsumerHandlers<TContract>;\n /** AMQP broker URL(s). Multiple URLs provide failover support */\n urls: ConnectionUrl[];\n /** Optional connection configuration (heartbeat, reconnect settings, etc.) */\n connectionOptions?: AmqpConnectionManagerOptions | undefined;\n};\n\n/**\n * Type-safe AMQP worker service for NestJS applications.\n *\n * This service wraps {@link TypedAmqpWorker} and integrates it with the NestJS\n * lifecycle, automatically starting message consumption on module init and\n * cleaning up resources on module destroy.\n *\n * @typeParam TContract - The contract definition type\n *\n * @example\n * ```typescript\n * // In your module\n * import { AmqpWorkerModule } from '@amqp-contract/worker-nestjs';\n *\n * @Module({\n * imports: [\n * AmqpWorkerModule.forRoot({\n * contract: myContract,\n * handlers: {\n * processOrder: async (message) => {\n * console.log('Received order:', message.orderId);\n * // Process the order...\n * }\n * },\n * urls: ['amqp://localhost']\n * })\n * ]\n * })\n * export class AppModule {}\n *\n * // The worker automatically starts consuming messages when the module initializes\n * // and stops gracefully when the application shuts down\n * ```\n */\n@Injectable()\nexport class AmqpWorkerService<TContract extends ContractDefinitionInput>\n implements OnModuleInit, OnModuleDestroy\n{\n private worker: TypedAmqpWorker<TContract> | null = null;\n\n constructor(\n @Inject(MODULE_OPTIONS_TOKEN)\n private readonly options: AmqpWorkerModuleOptions<TContract>,\n ) {}\n\n /**\n * Initialize the AMQP worker when the NestJS module starts.\n *\n * This lifecycle hook automatically creates and starts the worker,\n * beginning message consumption from all configured consumers.\n * The connection will be established in the background with\n * automatic reconnection handling.\n *\n * @throws Error if the worker fails to start\n */\n async onModuleInit(): Promise<void> {\n this.worker = await TypedAmqpWorker.create(this.options).resultToPromise();\n }\n\n /**\n * Close the AMQP worker when the NestJS module is destroyed.\n *\n * This lifecycle hook ensures proper cleanup of resources when the\n * NestJS application shuts down, gracefully stopping message consumption\n * and closing the connection.\n */\n async onModuleDestroy(): Promise<void> {\n if (this.worker) {\n await this.worker.close().resultToPromise();\n this.worker = null;\n }\n }\n}\n","import { type AmqpWorkerModuleOptions, AmqpWorkerService } from \"./worker.service.js\";\nimport {\n type DynamicModule,\n Module,\n type ModuleMetadata,\n type Provider,\n type Type,\n} from \"@nestjs/common\";\nimport type { ContractDefinitionInput } from \"@amqp-contract/contract\";\nimport { MODULE_OPTIONS_TOKEN } from \"./worker.module-definition.js\";\n\n/**\n * Factory function return type for async module configuration\n */\ntype AmqpWorkerModuleOptionsFactory<TContract extends ContractDefinitionInput> =\n | AmqpWorkerModuleOptions<TContract>\n | Promise<AmqpWorkerModuleOptions<TContract>>;\n\n/**\n * Options for async module configuration using factory pattern\n */\nexport type AmqpWorkerModuleAsyncOptions<TContract extends ContractDefinitionInput> = {\n /**\n * Factory function that returns the module options.\n * Can use injected dependencies to create configuration.\n */\n // oxlint-disable-next-line no-explicit-any\n useFactory: (...args: any[]) => AmqpWorkerModuleOptionsFactory<TContract>;\n /**\n * Optional dependencies to inject into the factory function.\n * Can be a token (string/symbol) a class or a reference to a provider.\n */\n inject?: (string | symbol | Type<unknown>)[];\n /**\n * Optional list of imported modules that export providers needed by the factory\n */\n imports?: ModuleMetadata[\"imports\"];\n};\n\n/**\n * NestJS module for AMQP worker integration\n * This module provides type-safe AMQP worker functionality using @amqp-contract/worker\n * without relying on NestJS decorators (except for dependency injection)\n *\n * @typeParam TContract - The contract definition type for type-safe handlers\n *\n * @example\n * ```typescript\n * // Synchronous configuration\n * @Module({\n * imports: [\n * AmqpWorkerModule.forRoot({\n * contract: myContract,\n * handlers: {\n * processOrder: async (message) => {\n * // message is fully typed based on the contract\n * console.log('Order:', message.orderId);\n * }\n * },\n * urls: ['amqp://localhost']\n * })\n * ]\n * })\n * export class AppModule {}\n *\n * // Asynchronous configuration\n * @Module({\n * imports: [\n * AmqpWorkerModule.forRootAsync({\n * imports: [ConfigModule],\n * useFactory: (configService: ConfigService) => ({\n * contract: myContract,\n * handlers: {\n * processOrder: async (message) => {\n * console.log('Order:', message.orderId);\n * }\n * },\n * urls: configService.get('AMQP_URLS')\n * }),\n * inject: [ConfigService]\n * })\n * ]\n * })\n * export class AppModule {}\n * ```\n */\n@Module({})\nexport class AmqpWorkerModule {\n /**\n * Register the AMQP worker module with synchronous configuration\n *\n * @param options - The worker configuration options with contract and handlers\n * @returns A dynamic module for NestJS\n */\n static forRoot<TContract extends ContractDefinitionInput>(\n options: AmqpWorkerModuleOptions<TContract>,\n ): DynamicModule {\n return {\n module: AmqpWorkerModule,\n providers: [\n {\n provide: MODULE_OPTIONS_TOKEN,\n useValue: options,\n },\n AmqpWorkerService,\n ],\n exports: [AmqpWorkerService],\n };\n }\n\n /**\n * Register the AMQP worker module with asynchronous configuration\n *\n * @param options - Async configuration options with factory function\n * @returns A dynamic module for NestJS\n */\n static forRootAsync<TContract extends ContractDefinitionInput>(\n options: AmqpWorkerModuleAsyncOptions<TContract>,\n ): DynamicModule {\n const providers: Provider[] = [\n {\n provide: MODULE_OPTIONS_TOKEN,\n useFactory: options.useFactory,\n inject: options.inject ?? [],\n },\n AmqpWorkerService,\n ];\n\n return {\n module: AmqpWorkerModule,\n imports: options.imports ?? [],\n providers,\n exports: [AmqpWorkerService],\n };\n }\n}\n"],"mappings":";;;;;;;;AAIA,MAAa,uBAAuB,OAAO,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsEjE,8BAAMA,oBAEb;CACE,AAAQ,SAA4C;CAEpD,YACE,AACiB,SACjB;EADiB;;;;;;;;;;;;CAanB,MAAM,eAA8B;AAClC,OAAK,SAAS,MAAM,gBAAgB,OAAO,KAAK,QAAQ,CAAC,iBAAiB;;;;;;;;;CAU5E,MAAM,kBAAiC;AACrC,MAAI,KAAK,QAAQ;AACf,SAAM,KAAK,OAAO,OAAO,CAAC,iBAAiB;AAC3C,QAAK,SAAS;;;;;CAnCnB,YAAY;oBAOR,OAAO,qBAAqB;;;;;;;ACO1B,iDAAMC,mBAAiB;;;;;;;CAO5B,OAAO,QACL,SACe;AACf,SAAO;GACL;GACA,WAAW,CACT;IACE,SAAS;IACT,UAAU;IACX,EACD,kBACD;GACD,SAAS,CAAC,kBAAkB;GAC7B;;;;;;;;CASH,OAAO,aACL,SACe;EACf,MAAM,YAAwB,CAC5B;GACE,SAAS;GACT,YAAY,QAAQ;GACpB,QAAQ,QAAQ,UAAU,EAAE;GAC7B,EACD,kBACD;AAED,SAAO;GACL;GACA,SAAS,QAAQ,WAAW,EAAE;GAC9B;GACA,SAAS,CAAC,kBAAkB;GAC7B;;;mDA/CJ,OAAO,EAAE,CAAC"}
|
package/docs/index.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
### AmqpWorkerModule
|
|
10
10
|
|
|
11
|
-
Defined in: [worker-nestjs/src/worker.module.ts:88](https://github.com/btravers/amqp-contract/blob/
|
|
11
|
+
Defined in: [worker-nestjs/src/worker.module.ts:88](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module.ts#L88)
|
|
12
12
|
|
|
13
13
|
NestJS module for AMQP worker integration
|
|
14
14
|
This module provides type-safe AMQP worker functionality using @amqp-contract/worker
|
|
@@ -79,7 +79,7 @@ new AmqpWorkerModule(): AmqpWorkerModule;
|
|
|
79
79
|
static forRoot<TContract>(options): DynamicModule;
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
Defined in: [worker-nestjs/src/worker.module.ts:95](https://github.com/btravers/amqp-contract/blob/
|
|
82
|
+
Defined in: [worker-nestjs/src/worker.module.ts:95](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module.ts#L95)
|
|
83
83
|
|
|
84
84
|
Register the AMQP worker module with synchronous configuration
|
|
85
85
|
|
|
@@ -87,7 +87,7 @@ Register the AMQP worker module with synchronous configuration
|
|
|
87
87
|
|
|
88
88
|
| Type Parameter |
|
|
89
89
|
| ------ |
|
|
90
|
-
| `TContract` *extends* `
|
|
90
|
+
| `TContract` *extends* `ContractDefinitionInput` |
|
|
91
91
|
|
|
92
92
|
###### Parameters
|
|
93
93
|
|
|
@@ -107,7 +107,7 @@ A dynamic module for NestJS
|
|
|
107
107
|
static forRootAsync<TContract>(options): DynamicModule;
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
Defined in: [worker-nestjs/src/worker.module.ts:117](https://github.com/btravers/amqp-contract/blob/
|
|
110
|
+
Defined in: [worker-nestjs/src/worker.module.ts:117](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module.ts#L117)
|
|
111
111
|
|
|
112
112
|
Register the AMQP worker module with asynchronous configuration
|
|
113
113
|
|
|
@@ -115,7 +115,7 @@ Register the AMQP worker module with asynchronous configuration
|
|
|
115
115
|
|
|
116
116
|
| Type Parameter |
|
|
117
117
|
| ------ |
|
|
118
|
-
| `TContract` *extends* `
|
|
118
|
+
| `TContract` *extends* `ContractDefinitionInput` |
|
|
119
119
|
|
|
120
120
|
###### Parameters
|
|
121
121
|
|
|
@@ -133,7 +133,7 @@ A dynamic module for NestJS
|
|
|
133
133
|
|
|
134
134
|
### AmqpWorkerService
|
|
135
135
|
|
|
136
|
-
Defined in: [worker-nestjs/src/worker.service.ts:75](https://github.com/btravers/amqp-contract/blob/
|
|
136
|
+
Defined in: [worker-nestjs/src/worker.service.ts:75](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L75)
|
|
137
137
|
|
|
138
138
|
Type-safe AMQP worker service for NestJS applications.
|
|
139
139
|
|
|
@@ -171,7 +171,7 @@ export class AppModule {}
|
|
|
171
171
|
|
|
172
172
|
| Type Parameter | Description |
|
|
173
173
|
| ------ | ------ |
|
|
174
|
-
| `TContract` *extends* `
|
|
174
|
+
| `TContract` *extends* `ContractDefinitionInput` | The contract definition type |
|
|
175
175
|
|
|
176
176
|
#### Implements
|
|
177
177
|
|
|
@@ -186,7 +186,7 @@ export class AppModule {}
|
|
|
186
186
|
new AmqpWorkerService<TContract>(options): AmqpWorkerService<TContract>;
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
-
Defined in: [worker-nestjs/src/worker.service.ts:80](https://github.com/btravers/amqp-contract/blob/
|
|
189
|
+
Defined in: [worker-nestjs/src/worker.service.ts:80](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L80)
|
|
190
190
|
|
|
191
191
|
###### Parameters
|
|
192
192
|
|
|
@@ -206,7 +206,7 @@ Defined in: [worker-nestjs/src/worker.service.ts:80](https://github.com/btravers
|
|
|
206
206
|
onModuleDestroy(): Promise<void>;
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
-
Defined in: [worker-nestjs/src/worker.service.ts:106](https://github.com/btravers/amqp-contract/blob/
|
|
209
|
+
Defined in: [worker-nestjs/src/worker.service.ts:106](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L106)
|
|
210
210
|
|
|
211
211
|
Close the AMQP worker when the NestJS module is destroyed.
|
|
212
212
|
|
|
@@ -230,7 +230,7 @@ OnModuleDestroy.onModuleDestroy
|
|
|
230
230
|
onModuleInit(): Promise<void>;
|
|
231
231
|
```
|
|
232
232
|
|
|
233
|
-
Defined in: [worker-nestjs/src/worker.service.ts:95](https://github.com/btravers/amqp-contract/blob/
|
|
233
|
+
Defined in: [worker-nestjs/src/worker.service.ts:95](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L95)
|
|
234
234
|
|
|
235
235
|
Initialize the AMQP worker when the NestJS module starts.
|
|
236
236
|
|
|
@@ -261,7 +261,7 @@ OnModuleInit.onModuleInit
|
|
|
261
261
|
type AmqpWorkerModuleAsyncOptions<TContract> = object;
|
|
262
262
|
```
|
|
263
263
|
|
|
264
|
-
Defined in: [worker-nestjs/src/worker.module.ts:22](https://github.com/btravers/amqp-contract/blob/
|
|
264
|
+
Defined in: [worker-nestjs/src/worker.module.ts:22](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module.ts#L22)
|
|
265
265
|
|
|
266
266
|
Options for async module configuration using factory pattern
|
|
267
267
|
|
|
@@ -269,15 +269,15 @@ Options for async module configuration using factory pattern
|
|
|
269
269
|
|
|
270
270
|
| Type Parameter |
|
|
271
271
|
| ------ |
|
|
272
|
-
| `TContract` *extends* `
|
|
272
|
+
| `TContract` *extends* `ContractDefinitionInput` |
|
|
273
273
|
|
|
274
274
|
#### Properties
|
|
275
275
|
|
|
276
276
|
| Property | Type | Description | Defined in |
|
|
277
277
|
| ------ | ------ | ------ | ------ |
|
|
278
|
-
| <a id="imports"></a> `imports?` | `ModuleMetadata`\[`"imports"`\] | Optional list of imported modules that export providers needed by the factory | [worker-nestjs/src/worker.module.ts:37](https://github.com/btravers/amqp-contract/blob/
|
|
279
|
-
| <a id="inject"></a> `inject?` | (`string` \| `symbol` \| `Type`<`unknown`>)[] | Optional dependencies to inject into the factory function. Can be a token (string/symbol) a class or a reference to a provider. | [worker-nestjs/src/worker.module.ts:33](https://github.com/btravers/amqp-contract/blob/
|
|
280
|
-
| <a id="usefactory"></a> `useFactory` | (...`args`) => `AmqpWorkerModuleOptionsFactory`<`TContract`> | Factory function that returns the module options. Can use injected dependencies to create configuration. | [worker-nestjs/src/worker.module.ts:28](https://github.com/btravers/amqp-contract/blob/
|
|
278
|
+
| <a id="imports"></a> `imports?` | `ModuleMetadata`\[`"imports"`\] | Optional list of imported modules that export providers needed by the factory | [worker-nestjs/src/worker.module.ts:37](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module.ts#L37) |
|
|
279
|
+
| <a id="inject"></a> `inject?` | (`string` \| `symbol` \| `Type`<`unknown`>)[] | Optional dependencies to inject into the factory function. Can be a token (string/symbol) a class or a reference to a provider. | [worker-nestjs/src/worker.module.ts:33](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module.ts#L33) |
|
|
280
|
+
| <a id="usefactory"></a> `useFactory` | (...`args`) => `AmqpWorkerModuleOptionsFactory`<`TContract`> | Factory function that returns the module options. Can use injected dependencies to create configuration. | [worker-nestjs/src/worker.module.ts:28](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module.ts#L28) |
|
|
281
281
|
|
|
282
282
|
***
|
|
283
283
|
|
|
@@ -287,7 +287,7 @@ Options for async module configuration using factory pattern
|
|
|
287
287
|
type AmqpWorkerModuleOptions<TContract> = object;
|
|
288
288
|
```
|
|
289
289
|
|
|
290
|
-
Defined in: [worker-nestjs/src/worker.service.ts:29](https://github.com/btravers/amqp-contract/blob/
|
|
290
|
+
Defined in: [worker-nestjs/src/worker.service.ts:29](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L29)
|
|
291
291
|
|
|
292
292
|
Configuration options for the AMQP worker NestJS module.
|
|
293
293
|
|
|
@@ -313,16 +313,16 @@ const options: AmqpWorkerModuleOptions<typeof contract> = {
|
|
|
313
313
|
|
|
314
314
|
| Type Parameter | Description |
|
|
315
315
|
| ------ | ------ |
|
|
316
|
-
| `TContract` *extends* `
|
|
316
|
+
| `TContract` *extends* `ContractDefinitionInput` | The contract definition type |
|
|
317
317
|
|
|
318
318
|
#### Properties
|
|
319
319
|
|
|
320
320
|
| Property | Type | Description | Defined in |
|
|
321
321
|
| ------ | ------ | ------ | ------ |
|
|
322
|
-
| <a id="connectionoptions"></a> `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration (heartbeat, reconnect settings, etc.) | [worker-nestjs/src/worker.service.ts:37](https://github.com/btravers/amqp-contract/blob/
|
|
323
|
-
| <a id="contract"></a> `contract` | `TContract` | The AMQP contract definition specifying consumers and their message schemas | [worker-nestjs/src/worker.service.ts:31](https://github.com/btravers/amqp-contract/blob/
|
|
324
|
-
| <a id="handlers"></a> `handlers` | [`WorkerInferSafeConsumerHandlers`](#workerinfersafeconsumerhandlers)<`TContract`> | Message handlers for each consumer defined in the contract. Use defineHandlers to create type-safe handlers. | [worker-nestjs/src/worker.service.ts:33](https://github.com/btravers/amqp-contract/blob/
|
|
325
|
-
| <a id="urls"></a> `urls` | `ConnectionUrl`[] | AMQP broker URL(s). Multiple URLs provide failover support | [worker-nestjs/src/worker.service.ts:35](https://github.com/btravers/amqp-contract/blob/
|
|
322
|
+
| <a id="connectionoptions"></a> `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration (heartbeat, reconnect settings, etc.) | [worker-nestjs/src/worker.service.ts:37](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L37) |
|
|
323
|
+
| <a id="contract"></a> `contract` | `TContract` | The AMQP contract definition specifying consumers and their message schemas | [worker-nestjs/src/worker.service.ts:31](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L31) |
|
|
324
|
+
| <a id="handlers"></a> `handlers` | [`WorkerInferSafeConsumerHandlers`](#workerinfersafeconsumerhandlers)<`TContract`> | Message handlers for each consumer defined in the contract. Use defineHandlers to create type-safe handlers. | [worker-nestjs/src/worker.service.ts:33](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L33) |
|
|
325
|
+
| <a id="urls"></a> `urls` | `ConnectionUrl`[] | AMQP broker URL(s). Multiple URLs provide failover support | [worker-nestjs/src/worker.service.ts:35](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.service.ts#L35) |
|
|
326
326
|
|
|
327
327
|
***
|
|
328
328
|
|
|
@@ -332,13 +332,13 @@ const options: AmqpWorkerModuleOptions<typeof contract> = {
|
|
|
332
332
|
type WorkerInferSafeConsumerHandlers<TContract> = WorkerInferConsumerHandlers<TContract>;
|
|
333
333
|
```
|
|
334
334
|
|
|
335
|
-
Defined in: worker/dist/index.d.mts:
|
|
335
|
+
Defined in: worker/dist/index.d.mts:296
|
|
336
336
|
|
|
337
337
|
#### Type Parameters
|
|
338
338
|
|
|
339
339
|
| Type Parameter |
|
|
340
340
|
| ------ |
|
|
341
|
-
| `TContract` *extends* `
|
|
341
|
+
| `TContract` *extends* `ContractDefinitionInput` |
|
|
342
342
|
|
|
343
343
|
#### Deprecated
|
|
344
344
|
|
|
@@ -352,7 +352,7 @@ Use `WorkerInferConsumerHandlers` instead. Will be removed in next major version
|
|
|
352
352
|
const MODULE_OPTIONS_TOKEN: typeof MODULE_OPTIONS_TOKEN;
|
|
353
353
|
```
|
|
354
354
|
|
|
355
|
-
Defined in: [worker-nestjs/src/worker.module-definition.ts:5](https://github.com/btravers/amqp-contract/blob/
|
|
355
|
+
Defined in: [worker-nestjs/src/worker.module-definition.ts:5](https://github.com/btravers/amqp-contract/blob/d132d062ebeaa9cc84db5471805355a29e3a50dc/packages/worker-nestjs/src/worker.module-definition.ts#L5)
|
|
356
356
|
|
|
357
357
|
Injection token for AMQP worker module options
|
|
358
358
|
Used by NestJS DI system to inject configuration into AmqpWorkerService
|
|
@@ -370,7 +370,7 @@ function defineHandler<TContract, TName>(
|
|
|
370
370
|
handler): WorkerInferConsumerHandlerEntry<TContract, TName>;
|
|
371
371
|
```
|
|
372
372
|
|
|
373
|
-
Defined in: worker/dist/index.d.mts:
|
|
373
|
+
Defined in: worker/dist/index.d.mts:610
|
|
374
374
|
|
|
375
375
|
Define a type-safe handler for a specific consumer in a contract.
|
|
376
376
|
|
|
@@ -385,7 +385,7 @@ Supports two patterns:
|
|
|
385
385
|
|
|
386
386
|
| Type Parameter | Description |
|
|
387
387
|
| ------ | ------ |
|
|
388
|
-
| `TContract` *extends* `
|
|
388
|
+
| `TContract` *extends* `ContractDefinitionInput` | The contract definition type |
|
|
389
389
|
| `TName` *extends* `string` \| `number` \| `symbol` | The consumer name from the contract |
|
|
390
390
|
|
|
391
391
|
##### Parameters
|
|
@@ -443,7 +443,7 @@ function defineHandler<TContract, TName>(
|
|
|
443
443
|
options): WorkerInferConsumerHandlerEntry<TContract, TName>;
|
|
444
444
|
```
|
|
445
445
|
|
|
446
|
-
Defined in: worker/dist/index.d.mts:
|
|
446
|
+
Defined in: worker/dist/index.d.mts:611
|
|
447
447
|
|
|
448
448
|
Define a type-safe handler for a specific consumer in a contract.
|
|
449
449
|
|
|
@@ -458,7 +458,7 @@ Supports two patterns:
|
|
|
458
458
|
|
|
459
459
|
| Type Parameter | Description |
|
|
460
460
|
| ------ | ------ |
|
|
461
|
-
| `TContract` *extends* `
|
|
461
|
+
| `TContract` *extends* `ContractDefinitionInput` | The contract definition type |
|
|
462
462
|
| `TName` *extends* `string` \| `number` \| `symbol` | The consumer name from the contract |
|
|
463
463
|
|
|
464
464
|
##### Parameters
|
|
@@ -516,7 +516,7 @@ const validateOrderHandler = defineHandler(
|
|
|
516
516
|
function defineHandlers<TContract>(contract, handlers): WorkerInferConsumerHandlers<TContract>;
|
|
517
517
|
```
|
|
518
518
|
|
|
519
|
-
Defined in: worker/dist/index.d.mts:
|
|
519
|
+
Defined in: worker/dist/index.d.mts:643
|
|
520
520
|
|
|
521
521
|
Define multiple type-safe handlers for consumers in a contract.
|
|
522
522
|
|
|
@@ -527,7 +527,7 @@ providing explicit error handling and better control over retry behavior.
|
|
|
527
527
|
|
|
528
528
|
| Type Parameter | Description |
|
|
529
529
|
| ------ | ------ |
|
|
530
|
-
| `TContract` *extends* `
|
|
530
|
+
| `TContract` *extends* `ContractDefinitionInput` | The contract definition type |
|
|
531
531
|
|
|
532
532
|
#### Parameters
|
|
533
533
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/worker-nestjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "NestJS integration for @amqp-contract/worker",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"docs"
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@amqp-contract/contract": "0.
|
|
56
|
-
"@amqp-contract/worker": "0.
|
|
55
|
+
"@amqp-contract/contract": "0.14.0",
|
|
56
|
+
"@amqp-contract/worker": "0.14.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@nestjs/common": "11.1.12",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"typescript": "5.9.3",
|
|
73
73
|
"vitest": "4.0.17",
|
|
74
74
|
"zod": "4.3.5",
|
|
75
|
-
"@amqp-contract/testing": "0.
|
|
75
|
+
"@amqp-contract/testing": "0.14.0",
|
|
76
76
|
"@amqp-contract/tsconfig": "0.1.0",
|
|
77
77
|
"@amqp-contract/typedoc": "0.1.0"
|
|
78
78
|
},
|