@amqp-contract/client-nestjs 0.2.0 → 0.3.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/README.md +13 -1
- package/dist/index.cjs +36 -11
- package/dist/index.d.cts +101 -14
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +101 -14
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +36 -11
- package/dist/index.mjs.map +1 -1
- package/docs/index.md +276 -0
- package/package.json +11 -6
package/README.md
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# @amqp-contract/client-nestjs
|
|
2
2
|
|
|
3
|
-
NestJS integration for [@amqp-contract/client](../client). Type-safe AMQP message publishing with automatic lifecycle management
|
|
3
|
+
**NestJS integration for [@amqp-contract/client](../client). Type-safe AMQP message publishing with automatic lifecycle management.**
|
|
4
|
+
|
|
5
|
+
[](https://github.com/btravers/amqp-contract/actions/workflows/ci.yml)
|
|
6
|
+
[](https://www.npmjs.com/package/@amqp-contract/client-nestjs)
|
|
7
|
+
[](https://www.npmjs.com/package/@amqp-contract/client-nestjs)
|
|
8
|
+
[](https://www.typescriptlang.org/)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
|
|
11
|
+
📖 **[Full documentation →](https://btravers.github.io/amqp-contract/guide/client-nestjs-usage)**
|
|
4
12
|
|
|
5
13
|
## Installation
|
|
6
14
|
|
|
@@ -39,6 +47,10 @@ export class OrderService {
|
|
|
39
47
|
|
|
40
48
|
The client automatically connects when the module initializes and cleans up on shutdown.
|
|
41
49
|
|
|
50
|
+
## Documentation
|
|
51
|
+
|
|
52
|
+
📖 **[Read the full documentation →](https://btravers.github.io/amqp-contract)**
|
|
53
|
+
|
|
42
54
|
## License
|
|
43
55
|
|
|
44
56
|
MIT
|
package/dist/index.cjs
CHANGED
|
@@ -785,30 +785,55 @@ let AmqpClientService = class AmqpClientService$1 {
|
|
|
785
785
|
this.options = options;
|
|
786
786
|
}
|
|
787
787
|
/**
|
|
788
|
-
* Initialize the client when the NestJS module starts
|
|
788
|
+
* Initialize the AMQP client when the NestJS module starts.
|
|
789
|
+
*
|
|
790
|
+
* This lifecycle hook automatically creates and initializes the client
|
|
791
|
+
* when the NestJS application starts up. The connection will be established
|
|
792
|
+
* in the background with automatic reconnection handling.
|
|
789
793
|
*/
|
|
790
794
|
async onModuleInit() {
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
});
|
|
795
|
+
const clientResult = await _amqp_contract_client.TypedAmqpClient.create(this.options);
|
|
796
|
+
if (clientResult.isError()) throw new Error(`Failed to create AMQP client: ${clientResult.error.message}`);
|
|
797
|
+
this.client = clientResult.get();
|
|
795
798
|
}
|
|
796
799
|
/**
|
|
797
|
-
* Close the client when the NestJS module is destroyed
|
|
800
|
+
* Close the AMQP client when the NestJS module is destroyed.
|
|
801
|
+
*
|
|
802
|
+
* This lifecycle hook ensures proper cleanup of resources when the
|
|
803
|
+
* NestJS application shuts down, gracefully closing the connection
|
|
804
|
+
* and cleaning up all consumers.
|
|
798
805
|
*/
|
|
799
806
|
async onModuleDestroy() {
|
|
800
807
|
if (this.client) {
|
|
801
|
-
await this.client.close();
|
|
808
|
+
await this.client.close().resultToPromise();
|
|
802
809
|
this.client = null;
|
|
803
810
|
}
|
|
804
811
|
}
|
|
805
812
|
/**
|
|
806
|
-
* Publish a message using a defined publisher
|
|
807
|
-
*
|
|
808
|
-
*
|
|
813
|
+
* Publish a message using a contract-defined publisher.
|
|
814
|
+
*
|
|
815
|
+
* This method provides type-safe message publishing with automatic validation
|
|
816
|
+
* and explicit error handling through the Result type.
|
|
817
|
+
*
|
|
818
|
+
* @param publisherName - The name of the publisher from the contract
|
|
819
|
+
* @param message - The message payload (type-checked against the contract)
|
|
820
|
+
* @param options - Optional AMQP publish options (e.g., persistence, headers)
|
|
821
|
+
* @returns A Future that resolves to a Result indicating success or failure
|
|
822
|
+
*
|
|
823
|
+
* @example
|
|
824
|
+
* ```typescript
|
|
825
|
+
* const result = await this.amqpClient.publish('orderCreated', {
|
|
826
|
+
* orderId: '123',
|
|
827
|
+
* amount: 99.99
|
|
828
|
+
* }).resultToPromise();
|
|
829
|
+
*
|
|
830
|
+
* if (result.isError()) {
|
|
831
|
+
* console.error('Publish failed:', result.error);
|
|
832
|
+
* }
|
|
833
|
+
* ```
|
|
809
834
|
*/
|
|
810
835
|
publish(publisherName, message, options) {
|
|
811
|
-
if (!this.client) return import_Boxed.Result.Error(new _amqp_contract_client.TechnicalError("Client not initialized. Ensure the module has been initialized before publishing."));
|
|
836
|
+
if (!this.client) return import_Boxed.Future.value(import_Boxed.Result.Error(new _amqp_contract_client.TechnicalError("Client not initialized. Ensure the module has been initialized before publishing.")));
|
|
812
837
|
return this.client.publish(publisherName, message, options);
|
|
813
838
|
}
|
|
814
839
|
};
|
package/dist/index.d.cts
CHANGED
|
@@ -1,40 +1,127 @@
|
|
|
1
1
|
import * as _nestjs_common0 from "@nestjs/common";
|
|
2
2
|
import { OnModuleDestroy, OnModuleInit } from "@nestjs/common";
|
|
3
|
+
import { ContractDefinition, InferPublisherNames } from "@amqp-contract/contract";
|
|
3
4
|
import { Options } from "amqplib";
|
|
4
|
-
import { Result } from "@swan-io/boxed";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { Future, Result } from "@swan-io/boxed";
|
|
6
|
+
import { AmqpConnectionManagerOptions, ConnectionUrl } from "amqp-connection-manager";
|
|
7
|
+
import { ClientInferPublisherInput, MessageValidationError, TechnicalError } from "@amqp-contract/client";
|
|
7
8
|
|
|
8
9
|
//#region src/client.service.d.ts
|
|
10
|
+
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
12
|
+
* Configuration options for the AMQP client NestJS module.
|
|
13
|
+
*
|
|
14
|
+
* @typeParam TContract - The contract definition type
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const options: AmqpClientModuleOptions<typeof contract> = {
|
|
19
|
+
* contract: myContract,
|
|
20
|
+
* urls: ['amqp://localhost'],
|
|
21
|
+
* connectionOptions: {
|
|
22
|
+
* heartbeatIntervalInSeconds: 30
|
|
23
|
+
* }
|
|
24
|
+
* };
|
|
25
|
+
* ```
|
|
11
26
|
*/
|
|
12
27
|
interface AmqpClientModuleOptions<TContract extends ContractDefinition> {
|
|
28
|
+
/** The AMQP contract definition specifying publishers and their message schemas */
|
|
13
29
|
contract: TContract;
|
|
14
|
-
|
|
30
|
+
/** AMQP broker URL(s). Multiple URLs provide failover support */
|
|
31
|
+
urls: ConnectionUrl[];
|
|
32
|
+
/** Optional connection configuration (heartbeat, reconnect settings, etc.) */
|
|
33
|
+
connectionOptions?: AmqpConnectionManagerOptions | undefined;
|
|
15
34
|
}
|
|
16
35
|
/**
|
|
17
|
-
* Type-safe AMQP client service for NestJS
|
|
18
|
-
*
|
|
36
|
+
* Type-safe AMQP client service for NestJS applications.
|
|
37
|
+
*
|
|
38
|
+
* This service wraps {@link TypedAmqpClient} and integrates it with the NestJS
|
|
39
|
+
* lifecycle, automatically initializing the connection on module init and
|
|
40
|
+
* cleaning up resources on module destroy.
|
|
41
|
+
*
|
|
42
|
+
* @typeParam TContract - The contract definition type
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // In your module
|
|
47
|
+
* import { AmqpClientModule } from '@amqp-contract/client-nestjs';
|
|
48
|
+
*
|
|
49
|
+
* @Module({
|
|
50
|
+
* imports: [
|
|
51
|
+
* AmqpClientModule.forRoot({
|
|
52
|
+
* contract: myContract,
|
|
53
|
+
* urls: ['amqp://localhost']
|
|
54
|
+
* })
|
|
55
|
+
* ]
|
|
56
|
+
* })
|
|
57
|
+
* export class AppModule {}
|
|
58
|
+
*
|
|
59
|
+
* // In your service
|
|
60
|
+
* import { AmqpClientService } from '@amqp-contract/client-nestjs';
|
|
61
|
+
*
|
|
62
|
+
* @Injectable()
|
|
63
|
+
* export class OrderService {
|
|
64
|
+
* constructor(
|
|
65
|
+
* private readonly amqpClient: AmqpClientService<typeof myContract>
|
|
66
|
+
* ) {}
|
|
67
|
+
*
|
|
68
|
+
* async createOrder(order: Order) {
|
|
69
|
+
* const result = await this.amqpClient.publish('orderCreated', {
|
|
70
|
+
* orderId: order.id,
|
|
71
|
+
* amount: order.total
|
|
72
|
+
* }).resultToPromise();
|
|
73
|
+
*
|
|
74
|
+
* if (result.isError()) {
|
|
75
|
+
* throw new Error('Failed to publish order event');
|
|
76
|
+
* }
|
|
77
|
+
* }
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
19
80
|
*/
|
|
20
81
|
declare class AmqpClientService<TContract extends ContractDefinition> implements OnModuleInit, OnModuleDestroy {
|
|
21
82
|
private readonly options;
|
|
22
83
|
private client;
|
|
23
84
|
constructor(options: AmqpClientModuleOptions<TContract>);
|
|
24
85
|
/**
|
|
25
|
-
* Initialize the client when the NestJS module starts
|
|
86
|
+
* Initialize the AMQP client when the NestJS module starts.
|
|
87
|
+
*
|
|
88
|
+
* This lifecycle hook automatically creates and initializes the client
|
|
89
|
+
* when the NestJS application starts up. The connection will be established
|
|
90
|
+
* in the background with automatic reconnection handling.
|
|
26
91
|
*/
|
|
27
92
|
onModuleInit(): Promise<void>;
|
|
28
93
|
/**
|
|
29
|
-
* Close the client when the NestJS module is destroyed
|
|
94
|
+
* Close the AMQP client when the NestJS module is destroyed.
|
|
95
|
+
*
|
|
96
|
+
* This lifecycle hook ensures proper cleanup of resources when the
|
|
97
|
+
* NestJS application shuts down, gracefully closing the connection
|
|
98
|
+
* and cleaning up all consumers.
|
|
30
99
|
*/
|
|
31
100
|
onModuleDestroy(): Promise<void>;
|
|
32
101
|
/**
|
|
33
|
-
* Publish a message using a defined publisher
|
|
34
|
-
*
|
|
35
|
-
*
|
|
102
|
+
* Publish a message using a contract-defined publisher.
|
|
103
|
+
*
|
|
104
|
+
* This method provides type-safe message publishing with automatic validation
|
|
105
|
+
* and explicit error handling through the Result type.
|
|
106
|
+
*
|
|
107
|
+
* @param publisherName - The name of the publisher from the contract
|
|
108
|
+
* @param message - The message payload (type-checked against the contract)
|
|
109
|
+
* @param options - Optional AMQP publish options (e.g., persistence, headers)
|
|
110
|
+
* @returns A Future that resolves to a Result indicating success or failure
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const result = await this.amqpClient.publish('orderCreated', {
|
|
115
|
+
* orderId: '123',
|
|
116
|
+
* amount: 99.99
|
|
117
|
+
* }).resultToPromise();
|
|
118
|
+
*
|
|
119
|
+
* if (result.isError()) {
|
|
120
|
+
* console.error('Publish failed:', result.error);
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
36
123
|
*/
|
|
37
|
-
publish<TName extends InferPublisherNames<TContract>>(publisherName: TName, message: ClientInferPublisherInput<TContract, TName>, options?:
|
|
124
|
+
publish<TName extends InferPublisherNames<TContract>>(publisherName: TName, message: ClientInferPublisherInput<TContract, TName>, options?: Options.Publish): Future<Result<boolean, TechnicalError | MessageValidationError>>;
|
|
38
125
|
}
|
|
39
126
|
//#endregion
|
|
40
127
|
//#region src/client.module-definition.d.ts
|
|
@@ -42,7 +129,7 @@ declare class AmqpClientService<TContract extends ContractDefinition> implements
|
|
|
42
129
|
* ConfigurableModuleBuilder for AMQP client module
|
|
43
130
|
* This creates forRoot and forRootAsync methods automatically
|
|
44
131
|
*/
|
|
45
|
-
declare const ConfigurableModuleClass: _nestjs_common0.ConfigurableModuleCls<AmqpClientModuleOptions<
|
|
132
|
+
declare const ConfigurableModuleClass: _nestjs_common0.ConfigurableModuleCls<AmqpClientModuleOptions<ContractDefinition>, "forRoot", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol;
|
|
46
133
|
//#endregion
|
|
47
134
|
//#region src/client.module.d.ts
|
|
48
135
|
/**
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/client.service.ts","../src/client.module-definition.ts","../src/client.module.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/client.service.ts","../src/client.module-definition.ts","../src/client.module.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA6BA;;;;;;AAuDA;;;;;;;AA+DwB,UAtHP,uBAsHO,CAAA,kBAtHmC,kBAsHnC,CAAA,CAAA;EACL;EACoB,QAAA,EAtH3B,SAsH2B;EAAW;EAArC,IAAA,EApHL,aAoHK,EAAA;EACC;EACc,iBAAA,CAAA,EApHN,4BAoHM,GAAA,SAAA;;;;;;;;;;AC/I5B;;;;;;;;;ACCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cF4Ea,oCAAoC,+BACpC,cAAc;;;uBAMG,wBAAwB;;;;;;;;kBAU9B;;;;;;;;qBAeG;;;;;;;;;;;;;;;;;;;;;;;;wBA8BH,oBAAoB,2BACzB,gBACN,0BAA0B,WAAW,kBACpC,OAAA,CAAQ,UACjB,OAAO,gBAAgB,iBAAiB;;;;;;;;cC/I9B,yBAAuB,eAAA,CAAA,sBAAA,wBAAA;;;;;;;;cCKzB,gBAAA,SAAyB,uBAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,40 +1,127 @@
|
|
|
1
1
|
import * as _nestjs_common0 from "@nestjs/common";
|
|
2
2
|
import { OnModuleDestroy, OnModuleInit } from "@nestjs/common";
|
|
3
|
-
import {
|
|
3
|
+
import { ClientInferPublisherInput, MessageValidationError, TechnicalError } from "@amqp-contract/client";
|
|
4
|
+
import { ContractDefinition, InferPublisherNames } from "@amqp-contract/contract";
|
|
4
5
|
import { Options } from "amqplib";
|
|
5
|
-
import { Result } from "@swan-io/boxed";
|
|
6
|
-
import {
|
|
6
|
+
import { Future, Result } from "@swan-io/boxed";
|
|
7
|
+
import { AmqpConnectionManagerOptions, ConnectionUrl } from "amqp-connection-manager";
|
|
7
8
|
|
|
8
9
|
//#region src/client.service.d.ts
|
|
10
|
+
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
12
|
+
* Configuration options for the AMQP client NestJS module.
|
|
13
|
+
*
|
|
14
|
+
* @typeParam TContract - The contract definition type
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const options: AmqpClientModuleOptions<typeof contract> = {
|
|
19
|
+
* contract: myContract,
|
|
20
|
+
* urls: ['amqp://localhost'],
|
|
21
|
+
* connectionOptions: {
|
|
22
|
+
* heartbeatIntervalInSeconds: 30
|
|
23
|
+
* }
|
|
24
|
+
* };
|
|
25
|
+
* ```
|
|
11
26
|
*/
|
|
12
27
|
interface AmqpClientModuleOptions<TContract extends ContractDefinition> {
|
|
28
|
+
/** The AMQP contract definition specifying publishers and their message schemas */
|
|
13
29
|
contract: TContract;
|
|
14
|
-
|
|
30
|
+
/** AMQP broker URL(s). Multiple URLs provide failover support */
|
|
31
|
+
urls: ConnectionUrl[];
|
|
32
|
+
/** Optional connection configuration (heartbeat, reconnect settings, etc.) */
|
|
33
|
+
connectionOptions?: AmqpConnectionManagerOptions | undefined;
|
|
15
34
|
}
|
|
16
35
|
/**
|
|
17
|
-
* Type-safe AMQP client service for NestJS
|
|
18
|
-
*
|
|
36
|
+
* Type-safe AMQP client service for NestJS applications.
|
|
37
|
+
*
|
|
38
|
+
* This service wraps {@link TypedAmqpClient} and integrates it with the NestJS
|
|
39
|
+
* lifecycle, automatically initializing the connection on module init and
|
|
40
|
+
* cleaning up resources on module destroy.
|
|
41
|
+
*
|
|
42
|
+
* @typeParam TContract - The contract definition type
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // In your module
|
|
47
|
+
* import { AmqpClientModule } from '@amqp-contract/client-nestjs';
|
|
48
|
+
*
|
|
49
|
+
* @Module({
|
|
50
|
+
* imports: [
|
|
51
|
+
* AmqpClientModule.forRoot({
|
|
52
|
+
* contract: myContract,
|
|
53
|
+
* urls: ['amqp://localhost']
|
|
54
|
+
* })
|
|
55
|
+
* ]
|
|
56
|
+
* })
|
|
57
|
+
* export class AppModule {}
|
|
58
|
+
*
|
|
59
|
+
* // In your service
|
|
60
|
+
* import { AmqpClientService } from '@amqp-contract/client-nestjs';
|
|
61
|
+
*
|
|
62
|
+
* @Injectable()
|
|
63
|
+
* export class OrderService {
|
|
64
|
+
* constructor(
|
|
65
|
+
* private readonly amqpClient: AmqpClientService<typeof myContract>
|
|
66
|
+
* ) {}
|
|
67
|
+
*
|
|
68
|
+
* async createOrder(order: Order) {
|
|
69
|
+
* const result = await this.amqpClient.publish('orderCreated', {
|
|
70
|
+
* orderId: order.id,
|
|
71
|
+
* amount: order.total
|
|
72
|
+
* }).resultToPromise();
|
|
73
|
+
*
|
|
74
|
+
* if (result.isError()) {
|
|
75
|
+
* throw new Error('Failed to publish order event');
|
|
76
|
+
* }
|
|
77
|
+
* }
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
19
80
|
*/
|
|
20
81
|
declare class AmqpClientService<TContract extends ContractDefinition> implements OnModuleInit, OnModuleDestroy {
|
|
21
82
|
private readonly options;
|
|
22
83
|
private client;
|
|
23
84
|
constructor(options: AmqpClientModuleOptions<TContract>);
|
|
24
85
|
/**
|
|
25
|
-
* Initialize the client when the NestJS module starts
|
|
86
|
+
* Initialize the AMQP client when the NestJS module starts.
|
|
87
|
+
*
|
|
88
|
+
* This lifecycle hook automatically creates and initializes the client
|
|
89
|
+
* when the NestJS application starts up. The connection will be established
|
|
90
|
+
* in the background with automatic reconnection handling.
|
|
26
91
|
*/
|
|
27
92
|
onModuleInit(): Promise<void>;
|
|
28
93
|
/**
|
|
29
|
-
* Close the client when the NestJS module is destroyed
|
|
94
|
+
* Close the AMQP client when the NestJS module is destroyed.
|
|
95
|
+
*
|
|
96
|
+
* This lifecycle hook ensures proper cleanup of resources when the
|
|
97
|
+
* NestJS application shuts down, gracefully closing the connection
|
|
98
|
+
* and cleaning up all consumers.
|
|
30
99
|
*/
|
|
31
100
|
onModuleDestroy(): Promise<void>;
|
|
32
101
|
/**
|
|
33
|
-
* Publish a message using a defined publisher
|
|
34
|
-
*
|
|
35
|
-
*
|
|
102
|
+
* Publish a message using a contract-defined publisher.
|
|
103
|
+
*
|
|
104
|
+
* This method provides type-safe message publishing with automatic validation
|
|
105
|
+
* and explicit error handling through the Result type.
|
|
106
|
+
*
|
|
107
|
+
* @param publisherName - The name of the publisher from the contract
|
|
108
|
+
* @param message - The message payload (type-checked against the contract)
|
|
109
|
+
* @param options - Optional AMQP publish options (e.g., persistence, headers)
|
|
110
|
+
* @returns A Future that resolves to a Result indicating success or failure
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const result = await this.amqpClient.publish('orderCreated', {
|
|
115
|
+
* orderId: '123',
|
|
116
|
+
* amount: 99.99
|
|
117
|
+
* }).resultToPromise();
|
|
118
|
+
*
|
|
119
|
+
* if (result.isError()) {
|
|
120
|
+
* console.error('Publish failed:', result.error);
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
36
123
|
*/
|
|
37
|
-
publish<TName extends InferPublisherNames<TContract>>(publisherName: TName, message: ClientInferPublisherInput<TContract, TName>, options?:
|
|
124
|
+
publish<TName extends InferPublisherNames<TContract>>(publisherName: TName, message: ClientInferPublisherInput<TContract, TName>, options?: Options.Publish): Future<Result<boolean, TechnicalError | MessageValidationError>>;
|
|
38
125
|
}
|
|
39
126
|
//#endregion
|
|
40
127
|
//#region src/client.module-definition.d.ts
|
|
@@ -42,7 +129,7 @@ declare class AmqpClientService<TContract extends ContractDefinition> implements
|
|
|
42
129
|
* ConfigurableModuleBuilder for AMQP client module
|
|
43
130
|
* This creates forRoot and forRootAsync methods automatically
|
|
44
131
|
*/
|
|
45
|
-
declare const ConfigurableModuleClass: _nestjs_common0.ConfigurableModuleCls<AmqpClientModuleOptions<
|
|
132
|
+
declare const ConfigurableModuleClass: _nestjs_common0.ConfigurableModuleCls<AmqpClientModuleOptions<ContractDefinition>, "forRoot", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol;
|
|
46
133
|
//#endregion
|
|
47
134
|
//#region src/client.module.d.ts
|
|
48
135
|
/**
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/client.service.ts","../src/client.module-definition.ts","../src/client.module.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/client.service.ts","../src/client.module-definition.ts","../src/client.module.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA6BA;;;;;;AAuDA;;;;;;;AA+DwB,UAtHP,uBAsHO,CAAA,kBAtHmC,kBAsHnC,CAAA,CAAA;EACL;EACoB,QAAA,EAtH3B,SAsH2B;EAAW;EAArC,IAAA,EApHL,aAoHK,EAAA;EACC;EACc,iBAAA,CAAA,EApHN,4BAoHM,GAAA,SAAA;;;;;;;;;;AC/I5B;;;;;;;;;ACCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cF4Ea,oCAAoC,+BACpC,cAAc;;;uBAMG,wBAAwB;;;;;;;;kBAU9B;;;;;;;;qBAeG;;;;;;;;;;;;;;;;;;;;;;;;wBA8BH,oBAAoB,2BACzB,gBACN,0BAA0B,WAAW,kBACpC,OAAA,CAAQ,UACjB,OAAO,gBAAgB,iBAAiB;;;;;;;;cC/I9B,yBAAuB,eAAA,CAAA,sBAAA,wBAAA;;;;;;;;cCKzB,gBAAA,SAAyB,uBAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -785,30 +785,55 @@ let AmqpClientService = class AmqpClientService$1 {
|
|
|
785
785
|
this.options = options;
|
|
786
786
|
}
|
|
787
787
|
/**
|
|
788
|
-
* Initialize the client when the NestJS module starts
|
|
788
|
+
* Initialize the AMQP client when the NestJS module starts.
|
|
789
|
+
*
|
|
790
|
+
* This lifecycle hook automatically creates and initializes the client
|
|
791
|
+
* when the NestJS application starts up. The connection will be established
|
|
792
|
+
* in the background with automatic reconnection handling.
|
|
789
793
|
*/
|
|
790
794
|
async onModuleInit() {
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
});
|
|
795
|
+
const clientResult = await TypedAmqpClient.create(this.options);
|
|
796
|
+
if (clientResult.isError()) throw new Error(`Failed to create AMQP client: ${clientResult.error.message}`);
|
|
797
|
+
this.client = clientResult.get();
|
|
795
798
|
}
|
|
796
799
|
/**
|
|
797
|
-
* Close the client when the NestJS module is destroyed
|
|
800
|
+
* Close the AMQP client when the NestJS module is destroyed.
|
|
801
|
+
*
|
|
802
|
+
* This lifecycle hook ensures proper cleanup of resources when the
|
|
803
|
+
* NestJS application shuts down, gracefully closing the connection
|
|
804
|
+
* and cleaning up all consumers.
|
|
798
805
|
*/
|
|
799
806
|
async onModuleDestroy() {
|
|
800
807
|
if (this.client) {
|
|
801
|
-
await this.client.close();
|
|
808
|
+
await this.client.close().resultToPromise();
|
|
802
809
|
this.client = null;
|
|
803
810
|
}
|
|
804
811
|
}
|
|
805
812
|
/**
|
|
806
|
-
* Publish a message using a defined publisher
|
|
807
|
-
*
|
|
808
|
-
*
|
|
813
|
+
* Publish a message using a contract-defined publisher.
|
|
814
|
+
*
|
|
815
|
+
* This method provides type-safe message publishing with automatic validation
|
|
816
|
+
* and explicit error handling through the Result type.
|
|
817
|
+
*
|
|
818
|
+
* @param publisherName - The name of the publisher from the contract
|
|
819
|
+
* @param message - The message payload (type-checked against the contract)
|
|
820
|
+
* @param options - Optional AMQP publish options (e.g., persistence, headers)
|
|
821
|
+
* @returns A Future that resolves to a Result indicating success or failure
|
|
822
|
+
*
|
|
823
|
+
* @example
|
|
824
|
+
* ```typescript
|
|
825
|
+
* const result = await this.amqpClient.publish('orderCreated', {
|
|
826
|
+
* orderId: '123',
|
|
827
|
+
* amount: 99.99
|
|
828
|
+
* }).resultToPromise();
|
|
829
|
+
*
|
|
830
|
+
* if (result.isError()) {
|
|
831
|
+
* console.error('Publish failed:', result.error);
|
|
832
|
+
* }
|
|
833
|
+
* ```
|
|
809
834
|
*/
|
|
810
835
|
publish(publisherName, message, options) {
|
|
811
|
-
if (!this.client) return import_Boxed.Result.Error(new TechnicalError("Client not initialized. Ensure the module has been initialized before publishing."));
|
|
836
|
+
if (!this.client) return import_Boxed.Future.value(import_Boxed.Result.Error(new TechnicalError("Client not initialized. Ensure the module has been initialized before publishing.")));
|
|
812
837
|
return this.client.publish(publisherName, message, options);
|
|
813
838
|
}
|
|
814
839
|
};
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["t","n","r","i","AmqpClientService","options: AmqpClientModuleOptions<TContract>","Result","AmqpClientModule"],"sources":["../src/client.module-definition.ts","../../../node_modules/.pnpm/@swan-io+boxed@3.2.1_typescript@5.9.3/node_modules/@swan-io/boxed/dist/Boxed.js","../src/client.service.ts","../src/client.module.ts"],"sourcesContent":["import { ConfigurableModuleBuilder } from \"@nestjs/common\";\nimport type { AmqpClientModuleOptions } from \"./client.service.js\";\n\n/**\n * ConfigurableModuleBuilder for AMQP client module\n * This creates forRoot and forRootAsync methods automatically\n */\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new ConfigurableModuleBuilder<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n AmqpClientModuleOptions<any>\n>()\n .setClassMethodName(\"forRoot\")\n .build();\n","var t=function(t){return Object.keys(t)},n=function(t){return Object.values(t)},r=Object.prototype.hasOwnProperty,e={__proto__:null,fromEntries:Object.fromEntries,entries:function(t){return Object.entries(t)},keys:t,values:n,fromOptional:function(t){var n={};for(var e in t)if(r.call(t,e)){var u=t[e];if(void 0===u)continue;u.isSome()&&(n[e]=u.get())}return n}},u=new WeakMap,o=\"function\"==typeof WeakRef?WeakRef:/*#__PURE__*/function(){function t(t){u.set(this,t)}return t.prototype.deref=function(){return u.get(this)},t}(),i=function(){var t=new Map,n=\"function\"==typeof FinalizationRegistry?new FinalizationRegistry(function(n){t.delete(n)}):void 0;return{set:function(r,e){t.set(r,new o(e)),void 0!==n&&n.register(e,r)},get:function(n){var r=t.get(n);if(void 0!==r)return r.deref()}}},a=Symbol.for(\"__boxed_type__\"),c=function(t,n){for(var r=Math.min(t.length,n.length),e=Array(r),u=-1;++u<r;)e[u]=[t[u],n[u]];return e},f=i(),s=/*#__PURE__*/function(){function t(){}t.fromPredicate=function(t,n){return n(t)?p.Some(t):v};var n=t.prototype;return n.map=function(t){return this===v?this:p.Some(t(this.value))},n.flatMap=function(t){return this===v?this:t(this.value)},n.filter=function(t){return this===v||t(this.value)?this:v},n.get=function(){return this.value},n.getWithDefault=function(t){return this===v?t:this.value},n.getOr=function(t){return this===v?t:this.value},n.orElse=function(t){return this===v?t:this},n.mapOr=function(t,n){return this===v?t:n(this.value)},n.match=function(t){return this===v?t.None():t.Some(this.value)},n.tap=function(t){return t(this),this},n.tapSome=function(t){return this===v||t(this.value),this},n.toUndefined=function(){if(this!==v)return this.value},n.toNull=function(){return this===v?null:this.value},n.toResult=function(t){return this.match({Some:function(t){return k.Ok(t)},None:function(){return k.Error(t)}})},n.isSome=function(){return this!==v},n.isNone=function(){return this===v},n.toJSON=function(){return this.match({None:function(){var t;return(t={})[a]=\"Option\",t.tag=\"None\",t},Some:function(t){var n;return(n={})[a]=\"Option\",n.tag=\"Some\",n.value=t,n}})},t}();s.P={Some:function(t){return{tag:\"Some\",value:t}},None:{tag:\"None\"}},s.Some=function(t){var n=f.get(t);if(null==n){var r=Object.create(h);return r.tag=\"Some\",r.value=t,Object.freeze(r),f.set(t,r),r}return n},s.None=function(){return v},s.isOption=function(t){return null!=t&&\"Option\"===t.__boxed_type__},s.fromNullable=function(t){return null==t?v:p.Some(t)},s.fromNull=function(t){return null===t?v:p.Some(t)},s.fromUndefined=function(t){return void 0===t?v:p.Some(t)},s.all=function(t){for(var n,r=t.length,e=p.Some([]),u=0,o=function(){if(u>=r)return{v:e};var n=t[u];null!=n&&(e=e.flatMap(function(t){return n.map(function(n){return t.push(n),t})})),u++};;)if(n=o())return n.v},s.allFromDict=function(r){var e=t(r);return p.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},s.equals=function(t,n,r){return t.isSome()&&n.isSome()?r(t.get(),n.get()):t.tag===n.tag},s.fromJSON=function(t){return\"None\"===t.tag?p.None():p.Some(t.value)},s.prototype.__boxed_type__=\"Option\";var l,h=s.prototype,v=((l=Object.create(h)).tag=\"None\",Object.freeze(l),l),p=s,m=i(),g=i(),O=/*#__PURE__*/function(){function t(){}var n=t.prototype;return n.map=function(t){return\"Ok\"===this.tag?k.Ok(t(this.value)):this},n.mapError=function(t){return\"Ok\"===this.tag?this:k.Error(t(this.error))},n.flatMap=function(t){return\"Ok\"===this.tag?t(this.value):this},n.flatMapError=function(t){return\"Ok\"===this.tag?this:t(this.error)},n.get=function(){return this.value},n.getError=function(){return this.error},n.getWithDefault=function(t){return\"Ok\"===this.tag?this.value:t},n.getOr=function(t){return\"Ok\"===this.tag?this.value:t},n.mapOr=function(t,n){return\"Error\"===this.tag?t:n(this.value)},n.match=function(t){return\"Ok\"===this.tag?t.Ok(this.value):t.Error(this.error)},n.tap=function(t){return t(this),this},n.tapOk=function(t){return\"Ok\"===this.tag&&t(this.value),this},n.tapError=function(t){return\"Error\"===this.tag&&t(this.error),this},n.toOption=function(){return\"Ok\"===this.tag?p.Some(this.value):v},n.isOk=function(){return\"Ok\"===this.tag},n.isError=function(){return\"Error\"===this.tag},n.toJSON=function(){return this.match({Ok:function(t){var n;return(n={})[a]=\"Result\",n.tag=\"Ok\",n.value=t,n},Error:function(t){var n;return(n={})[a]=\"Result\",n.tag=\"Error\",n.error=t,n}})},t}();O.P={Ok:function(t){return{tag:\"Ok\",value:t}},Error:function(t){return{tag:\"Error\",error:t}}},O.Ok=function(t){var n=m.get(t);if(null==n){var r=Object.create(_);return r.tag=\"Ok\",r.value=t,Object.freeze(r),m.set(t,r),r}return n},O.Error=function(t){var n=g.get(t);if(null==n){var r=Object.create(_);return r.tag=\"Error\",r.error=t,Object.freeze(r),g.set(t,r),r}return n},O.isResult=function(t){return null!=t&&\"Result\"===t.__boxed_type__},O.fromExecution=function(t){try{return k.Ok(t())}catch(t){return k.Error(t)}},O.fromPromise=function(t){try{return Promise.resolve(function(n,r){try{var e=Promise.resolve(t).then(function(t){return k.Ok(t)})}catch(t){return r(t)}return e&&e.then?e.then(void 0,r):e}(0,function(t){return k.Error(t)}))}catch(t){return Promise.reject(t)}},O.fromOption=function(t,n){return t.toResult(n)},O.all=function(t){for(var n,r=t.length,e=k.Ok([]),u=0,o=function(){if(u>=r)return{v:e};var n=t[u];null!=n&&(e=e.flatMap(function(t){return n.map(function(n){return t.push(n),t})})),u++};;)if(n=o())return n.v},O.allFromDict=function(r){var e=t(r);return k.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},O.equals=function(t,n,r){return t.tag===n.tag&&(!(!t.isError()||!n.isError())||!(!t.isOk()||!n.isOk())&&r(t.get(),n.get()))},O.fromJSON=function(t){return\"Ok\"===t.tag?k.Ok(t.value):k.Error(t.error)},O.prototype.__boxed_type__=\"Result\";var _=O.prototype,k=O,d=function(t,n){return t===n?0:t>n?1:-1},y={__proto__:null,from:Array.from,of:Array.of,isArray:Array.isArray,findMap:function(t,n){for(var r=-1;++r<t.length;){var e=n(t[r]);if(e.isSome())return e}return p.None()},filterMap:function(t,n){var r=[];return t.forEach(function(t){var e=n(t);e.isSome()&&r.push(e.get())}),r},find:function(t,n){for(var r=-1;++r<t.length;){var e=t[r];if(n(e))return p.Some(e)}return p.None()},findIndex:function(t,n){for(var r=-1;++r<t.length;)if(n(t[r]))return p.Some(r);return p.None()},binarySearchBy:function(t,n,r){if(void 0===r&&(r=d),0===t.length)return-1;for(var e=0,u=t.length-1;;){var o=e+(u-e)/2|0;if(o===e||o===u)return u;var i=r(n,t[o]);if(0===i)return o;i>0?e=o:i<0&&(u=o)}},unzip:function(t){for(var n=t.length,r=Array(n),e=Array(n),u=-1;++u<n;){var o=t[u];void 0!==o&&(r[u]=o[0],e[u]=o[1])}return[r,e]},zip:c},E=i(),b=/*#__PURE__*/function(){function t(){}var n=t.prototype;return n.map=function(t){return this===j||this===D?this:R.Done(t(this.value))},n.flatMap=function(t){return this===j||this===D?this:t(this.value)},n.mapOkToResult=function(t){return this.map(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return n}})})},n.mapErrorToResult=function(t){return this.map(function(n){return n.match({Error:function(n){return t(n)},Ok:function(){return n}})})},n.mapOk=function(t){return this.map(function(n){return n.match({Ok:function(n){return k.Ok(t(n))},Error:function(){return n}})})},n.mapError=function(t){return this.map(function(n){return n.match({Ok:function(){return n},Error:function(n){return k.Error(t(n))}})})},n.flatMapOk=function(t){return this.flatMap(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return R.Done(n)}})})},n.flatMapError=function(t){return this.flatMap(function(n){return n.match({Ok:function(){return R.Done(n)},Error:function(n){return t(n)}})})},n.get=function(){return this.value},n.getWithDefault=function(t){return this===j||this===D?t:this.value},n.getOr=function(t){return this===j||this===D?t:this.value},n.mapOr=function(t,n){return this===j||this===D?t:n(this.value)},n.match=function(t){return this===j?t.NotAsked():this===D?t.Loading():t.Done(this.value)},n.tap=function(t){return t(this),this},n.toOption=function(){return this===j||this===D?p.None():p.Some(this.value)},n.isDone=function(){return this!==j&&this!==D},n.isLoading=function(){return this===D},n.isNotAsked=function(){return this===j},n.toJSON=function(){return this.match({NotAsked:function(){var t;return(t={})[a]=\"AsyncData\",t.tag=\"NotAsked\",t},Loading:function(){var t;return(t={})[a]=\"AsyncData\",t.tag=\"Loading\",t},Done:function(t){var n;return(n={})[a]=\"AsyncData\",n.tag=\"Done\",n.value=t,n}})},t}();b.P={Done:function(t){return{tag:\"Done\",value:t}},NotAsked:{tag:\"NotAsked\"},Loading:{tag:\"Loading\"}},b.Done=function(t){var n=E.get(t);if(null==n){var r=Object.create(N);return r.tag=\"Done\",r.value=t,Object.freeze(r),E.set(t,r),r}return n},b.Loading=function(){return D},b.NotAsked=function(){return j},b.all=function(t){for(var n,r=t.length,e=R.Done([]),u=0,o=function(){if(u>=r)return{v:e};var n=t[u];null!=n&&(e=e.flatMap(function(t){return n.map(function(n){return t.push(n),t})})),u++};;)if(n=o())return n.v},b.allFromDict=function(r){var e=t(r);return R.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},b.equals=function(t,n,r){return\"Done\"===t.tag&&\"Done\"===n.tag?r(t.value,n.value):t.tag===n.tag},b.isAsyncData=function(t){return null!=t&&\"AsyncData\"===t.__boxed_type__},b.fromJSON=function(t){return\"NotAsked\"===t.tag?R.NotAsked():\"Loading\"===t.tag?R.Loading():R.Done(t.value)},b.prototype.__boxed_type__=\"AsyncData\";var S,N=b.prototype,D=((S=Object.create(N)).tag=\"Loading\",Object.freeze(S),S),j=function(){var t=Object.create(N);return t.tag=\"NotAsked\",Object.freeze(t),t}(),R=b,A=/*#__PURE__*/function(){function t(){this._state=void 0,this._state={tag:\"Pending\"}}t.fromPromise=function(t){return P.make(function(n){t.then(function(t){return n(k.Ok(t))},function(t){return n(k.Error(t))})})};var n=t.prototype;return n.onResolve=function(t){var n;\"Pending\"===this._state.tag?(this._state.resolveCallbacks=null!=(n=this._state.resolveCallbacks)?n:[],this._state.resolveCallbacks.push(t)):\"Resolved\"===this._state.tag&&t(this._state.value)},n.onCancel=function(t){var n;\"Pending\"===this._state.tag?(this._state.cancelCallbacks=null!=(n=this._state.cancelCallbacks)?n:[],this._state.cancelCallbacks.push(t)):\"Cancelled\"===this._state.tag&&t()},n.cancel=function(){if(\"Pending\"===this._state.tag){var t=this._state,n=t.cancel,r=t.cancelCallbacks;this._state={tag:\"Cancelled\"},null!=n&&n(),null==r||r.forEach(function(t){return t()})}},n.map=function(t,n){var r=this;void 0===n&&(n=!1);var e=P.make(function(e){if(r.onResolve(function(n){e(t(n))}),n)return function(){r.cancel()}});return this.onCancel(function(){e.cancel()}),e},n.then=function(t){return this.onResolve(t),this},n.flatMap=function(t,n){var r=this;void 0===n&&(n=!1);var e=P.make(function(u){if(r.onResolve(function(n){var r=t(n);r.onResolve(u),r.onCancel(function(){return e.cancel()})}),n)return function(){r.cancel()}});return this.onCancel(function(){e.cancel()}),e},n.tap=function(t){return this.onResolve(t),this},n.tapOk=function(t){return this.onResolve(function(n){n.match({Ok:function(n){return t(n)},Error:function(){}})}),this},n.tapError=function(t){return this.onResolve(function(n){n.match({Ok:function(){},Error:function(n){return t(n)}})}),this},n.mapOkToResult=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return n}})},n)},n.mapErrorToResult=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Error:function(n){return t(n)},Ok:function(){return n}})},n)},n.mapOk=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Ok:function(n){return k.Ok(t(n))},Error:function(){return n}})},n)},n.mapError=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Ok:function(){return n},Error:function(n){return k.Error(t(n))}})},n)},n.flatMapOk=function(t,n){return void 0===n&&(n=!1),this.flatMap(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return P.value(n)}})},n)},n.flatMapError=function(t,n){return void 0===n&&(n=!1),this.flatMap(function(n){return n.match({Ok:function(){return P.value(n)},Error:function(n){return t(n)}})},n)},n.toPromise=function(){var t=this;return new Promise(function(n){t.onResolve(n)})},n.resultToPromise=function(){var t=this;return new Promise(function(n,r){t.onResolve(function(t){t.match({Ok:n,Error:r})})})},t}();A.make=function(t){var n=Object.create(M);return n._state={tag:\"Pending\"},n._state.cancel=t(function(t){if(\"Pending\"===n._state.tag){var r=n._state.resolveCallbacks;n._state={tag:\"Resolved\",value:t},null==r||r.forEach(function(n){return n(t)})}}),n},A.isFuture=function(t){return null!=t&&Object.prototype.isPrototypeOf.call(M,t)},A.value=function(t){var n=Object.create(M);return n._state={tag:\"Resolved\",value:t},n},A.all=function(t,n){void 0===n&&(n=!1);for(var r,e=t.length,u=P.value([]),o=0,i=function(){if(o>=e)return{v:u};var r=t[o];null!=r&&(u=u.flatMap(function(t){return r.map(function(n){return t.push(n),t},n)},n)),o++};;)if(r=i())return r.v},A.allFromDict=function(r){var e=t(r);return P.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},A.wait=function(t){return P.make(function(n){var r=setTimeout(function(){return n()},t);return function(){return clearTimeout(r)}})},A.retry=function(t,n){var r=n.max;return function n(e){return t(e).flatMapError(function(t){return e+1<r?n(e+1):P.value(k.Error(t))})}(0)},A.concurrent=function(t,n){var r=n.concurrency;return P.make(function(n){var e=Array(t.length),u=r-1,o=0;0!==t.length?t.slice(0,r).forEach(function r(i,a){return i().tap(function(i){if(e[a]=i,++o<t.length){var c=t[++u];null!=c&&r(c,u)}else n(e)})}):n([])})};var M=Object.create(null,Object.getOwnPropertyDescriptors(A.prototype)),P=A,x={make:function(){var t;return[P.make(function(n){t=n}),t]}},C=Symbol(\"NOT_COMPUTED\");function z(){return z=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},z.apply(this,arguments)}var J={__proto__:null,encode:function(t,n){return JSON.stringify(t,function(t,n){return null==n?n:\"string\"==typeof n[a]?z({},n,{__boxed_type__:n[a]}):n},n)},decode:function(t){return JSON.parse(t,function(t,n){return null==n?n:\"Option\"===n.__boxed_type__?p.fromJSON(n):\"Result\"===n.__boxed_type__?k.fromJSON(n):\"AsyncData\"===n.__boxed_type__?R.fromJSON(n):n})}};exports.Array=y,exports.AsyncData=R,exports.Deferred=x,exports.Dict=e,exports.Future=P,exports.Lazy=function(t){var n={contents:C};return{get:function(){return n.contents===C&&(n.contents=t()),n.contents}}},exports.Option=p,exports.Result=k,exports.Serializer=J;\n//# sourceMappingURL=Boxed.js.map\n","import { Inject, Injectable, type OnModuleDestroy, type OnModuleInit } from \"@nestjs/common\";\nimport type { Options } from \"amqplib\";\nimport { Result } from \"@swan-io/boxed\";\nimport type {\n ClientInferPublisherInput,\n ContractDefinition,\n InferPublisherNames,\n} from \"@amqp-contract/contract\";\nimport {\n MessageValidationError,\n TechnicalError,\n TypedAmqpClient,\n type PublishOptions,\n} from \"@amqp-contract/client\";\nimport { MODULE_OPTIONS_TOKEN } from \"./client.module-definition.js\";\n\n/**\n * Options for creating a NestJS client service\n */\nexport interface AmqpClientModuleOptions<TContract extends ContractDefinition> {\n contract: TContract;\n connection: string | Options.Connect;\n}\n\n/**\n * Type-safe AMQP client service for NestJS\n * This service integrates @amqp-contract/client with NestJS lifecycle\n */\n@Injectable()\nexport class AmqpClientService<TContract extends ContractDefinition>\n implements OnModuleInit, OnModuleDestroy\n{\n private client: TypedAmqpClient<TContract> | null = null;\n\n constructor(\n @Inject(MODULE_OPTIONS_TOKEN)\n private readonly options: AmqpClientModuleOptions<TContract>,\n ) {}\n\n /**\n * Initialize the client when the NestJS module starts\n */\n async onModuleInit(): Promise<void> {\n this.client = await TypedAmqpClient.create({\n contract: this.options.contract,\n connection: this.options.connection,\n });\n }\n\n /**\n * Close the client when the NestJS module is destroyed\n */\n async onModuleDestroy(): Promise<void> {\n if (this.client) {\n await this.client.close();\n this.client = null;\n }\n }\n\n /**\n * Publish a message using a defined publisher\n * This method provides type-safe message publishing with explicit error handling\n * Returns Result<boolean, ClientError> for runtime errors\n */\n publish<TName extends InferPublisherNames<TContract>>(\n publisherName: TName,\n message: ClientInferPublisherInput<TContract, TName>,\n options?: PublishOptions,\n ): Result<boolean, TechnicalError | MessageValidationError> {\n if (!this.client) {\n return Result.Error(\n new TechnicalError(\n \"Client not initialized. Ensure the module has been initialized before publishing.\",\n ),\n );\n }\n\n return this.client.publish(publisherName, message, options);\n }\n}\n","import { Module } from \"@nestjs/common\";\nimport { ConfigurableModuleClass } from \"./client.module-definition.js\";\nimport { AmqpClientService } from \"./client.service.js\";\n\n/**\n * NestJS module for AMQP client integration\n * This module provides type-safe AMQP client functionality using @amqp-contract/client\n * without relying on NestJS decorators (except for dependency injection)\n */\n@Module({\n providers: [AmqpClientService],\n exports: [AmqpClientService],\n})\nexport class AmqpClientModule extends ConfigurableModuleClass {}\n"],"x_google_ignoreList":[1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["t","n","r","i","AmqpClientService","options: AmqpClientModuleOptions<TContract>","Future","Result","AmqpClientModule"],"sources":["../src/client.module-definition.ts","../../../node_modules/.pnpm/@swan-io+boxed@3.2.1_typescript@5.9.3/node_modules/@swan-io/boxed/dist/Boxed.js","../src/client.service.ts","../src/client.module.ts"],"sourcesContent":["import { ConfigurableModuleBuilder } from \"@nestjs/common\";\nimport type { ContractDefinition } from \"@amqp-contract/contract\";\nimport type { AmqpClientModuleOptions } from \"./client.service.js\";\n\n/**\n * ConfigurableModuleBuilder for AMQP client module\n * This creates forRoot and forRootAsync methods automatically\n */\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new ConfigurableModuleBuilder<\n AmqpClientModuleOptions<ContractDefinition>\n>()\n .setClassMethodName(\"forRoot\")\n .build();\n","var t=function(t){return Object.keys(t)},n=function(t){return Object.values(t)},r=Object.prototype.hasOwnProperty,e={__proto__:null,fromEntries:Object.fromEntries,entries:function(t){return Object.entries(t)},keys:t,values:n,fromOptional:function(t){var n={};for(var e in t)if(r.call(t,e)){var u=t[e];if(void 0===u)continue;u.isSome()&&(n[e]=u.get())}return n}},u=new WeakMap,o=\"function\"==typeof WeakRef?WeakRef:/*#__PURE__*/function(){function t(t){u.set(this,t)}return t.prototype.deref=function(){return u.get(this)},t}(),i=function(){var t=new Map,n=\"function\"==typeof FinalizationRegistry?new FinalizationRegistry(function(n){t.delete(n)}):void 0;return{set:function(r,e){t.set(r,new o(e)),void 0!==n&&n.register(e,r)},get:function(n){var r=t.get(n);if(void 0!==r)return r.deref()}}},a=Symbol.for(\"__boxed_type__\"),c=function(t,n){for(var r=Math.min(t.length,n.length),e=Array(r),u=-1;++u<r;)e[u]=[t[u],n[u]];return e},f=i(),s=/*#__PURE__*/function(){function t(){}t.fromPredicate=function(t,n){return n(t)?p.Some(t):v};var n=t.prototype;return n.map=function(t){return this===v?this:p.Some(t(this.value))},n.flatMap=function(t){return this===v?this:t(this.value)},n.filter=function(t){return this===v||t(this.value)?this:v},n.get=function(){return this.value},n.getWithDefault=function(t){return this===v?t:this.value},n.getOr=function(t){return this===v?t:this.value},n.orElse=function(t){return this===v?t:this},n.mapOr=function(t,n){return this===v?t:n(this.value)},n.match=function(t){return this===v?t.None():t.Some(this.value)},n.tap=function(t){return t(this),this},n.tapSome=function(t){return this===v||t(this.value),this},n.toUndefined=function(){if(this!==v)return this.value},n.toNull=function(){return this===v?null:this.value},n.toResult=function(t){return this.match({Some:function(t){return k.Ok(t)},None:function(){return k.Error(t)}})},n.isSome=function(){return this!==v},n.isNone=function(){return this===v},n.toJSON=function(){return this.match({None:function(){var t;return(t={})[a]=\"Option\",t.tag=\"None\",t},Some:function(t){var n;return(n={})[a]=\"Option\",n.tag=\"Some\",n.value=t,n}})},t}();s.P={Some:function(t){return{tag:\"Some\",value:t}},None:{tag:\"None\"}},s.Some=function(t){var n=f.get(t);if(null==n){var r=Object.create(h);return r.tag=\"Some\",r.value=t,Object.freeze(r),f.set(t,r),r}return n},s.None=function(){return v},s.isOption=function(t){return null!=t&&\"Option\"===t.__boxed_type__},s.fromNullable=function(t){return null==t?v:p.Some(t)},s.fromNull=function(t){return null===t?v:p.Some(t)},s.fromUndefined=function(t){return void 0===t?v:p.Some(t)},s.all=function(t){for(var n,r=t.length,e=p.Some([]),u=0,o=function(){if(u>=r)return{v:e};var n=t[u];null!=n&&(e=e.flatMap(function(t){return n.map(function(n){return t.push(n),t})})),u++};;)if(n=o())return n.v},s.allFromDict=function(r){var e=t(r);return p.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},s.equals=function(t,n,r){return t.isSome()&&n.isSome()?r(t.get(),n.get()):t.tag===n.tag},s.fromJSON=function(t){return\"None\"===t.tag?p.None():p.Some(t.value)},s.prototype.__boxed_type__=\"Option\";var l,h=s.prototype,v=((l=Object.create(h)).tag=\"None\",Object.freeze(l),l),p=s,m=i(),g=i(),O=/*#__PURE__*/function(){function t(){}var n=t.prototype;return n.map=function(t){return\"Ok\"===this.tag?k.Ok(t(this.value)):this},n.mapError=function(t){return\"Ok\"===this.tag?this:k.Error(t(this.error))},n.flatMap=function(t){return\"Ok\"===this.tag?t(this.value):this},n.flatMapError=function(t){return\"Ok\"===this.tag?this:t(this.error)},n.get=function(){return this.value},n.getError=function(){return this.error},n.getWithDefault=function(t){return\"Ok\"===this.tag?this.value:t},n.getOr=function(t){return\"Ok\"===this.tag?this.value:t},n.mapOr=function(t,n){return\"Error\"===this.tag?t:n(this.value)},n.match=function(t){return\"Ok\"===this.tag?t.Ok(this.value):t.Error(this.error)},n.tap=function(t){return t(this),this},n.tapOk=function(t){return\"Ok\"===this.tag&&t(this.value),this},n.tapError=function(t){return\"Error\"===this.tag&&t(this.error),this},n.toOption=function(){return\"Ok\"===this.tag?p.Some(this.value):v},n.isOk=function(){return\"Ok\"===this.tag},n.isError=function(){return\"Error\"===this.tag},n.toJSON=function(){return this.match({Ok:function(t){var n;return(n={})[a]=\"Result\",n.tag=\"Ok\",n.value=t,n},Error:function(t){var n;return(n={})[a]=\"Result\",n.tag=\"Error\",n.error=t,n}})},t}();O.P={Ok:function(t){return{tag:\"Ok\",value:t}},Error:function(t){return{tag:\"Error\",error:t}}},O.Ok=function(t){var n=m.get(t);if(null==n){var r=Object.create(_);return r.tag=\"Ok\",r.value=t,Object.freeze(r),m.set(t,r),r}return n},O.Error=function(t){var n=g.get(t);if(null==n){var r=Object.create(_);return r.tag=\"Error\",r.error=t,Object.freeze(r),g.set(t,r),r}return n},O.isResult=function(t){return null!=t&&\"Result\"===t.__boxed_type__},O.fromExecution=function(t){try{return k.Ok(t())}catch(t){return k.Error(t)}},O.fromPromise=function(t){try{return Promise.resolve(function(n,r){try{var e=Promise.resolve(t).then(function(t){return k.Ok(t)})}catch(t){return r(t)}return e&&e.then?e.then(void 0,r):e}(0,function(t){return k.Error(t)}))}catch(t){return Promise.reject(t)}},O.fromOption=function(t,n){return t.toResult(n)},O.all=function(t){for(var n,r=t.length,e=k.Ok([]),u=0,o=function(){if(u>=r)return{v:e};var n=t[u];null!=n&&(e=e.flatMap(function(t){return n.map(function(n){return t.push(n),t})})),u++};;)if(n=o())return n.v},O.allFromDict=function(r){var e=t(r);return k.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},O.equals=function(t,n,r){return t.tag===n.tag&&(!(!t.isError()||!n.isError())||!(!t.isOk()||!n.isOk())&&r(t.get(),n.get()))},O.fromJSON=function(t){return\"Ok\"===t.tag?k.Ok(t.value):k.Error(t.error)},O.prototype.__boxed_type__=\"Result\";var _=O.prototype,k=O,d=function(t,n){return t===n?0:t>n?1:-1},y={__proto__:null,from:Array.from,of:Array.of,isArray:Array.isArray,findMap:function(t,n){for(var r=-1;++r<t.length;){var e=n(t[r]);if(e.isSome())return e}return p.None()},filterMap:function(t,n){var r=[];return t.forEach(function(t){var e=n(t);e.isSome()&&r.push(e.get())}),r},find:function(t,n){for(var r=-1;++r<t.length;){var e=t[r];if(n(e))return p.Some(e)}return p.None()},findIndex:function(t,n){for(var r=-1;++r<t.length;)if(n(t[r]))return p.Some(r);return p.None()},binarySearchBy:function(t,n,r){if(void 0===r&&(r=d),0===t.length)return-1;for(var e=0,u=t.length-1;;){var o=e+(u-e)/2|0;if(o===e||o===u)return u;var i=r(n,t[o]);if(0===i)return o;i>0?e=o:i<0&&(u=o)}},unzip:function(t){for(var n=t.length,r=Array(n),e=Array(n),u=-1;++u<n;){var o=t[u];void 0!==o&&(r[u]=o[0],e[u]=o[1])}return[r,e]},zip:c},E=i(),b=/*#__PURE__*/function(){function t(){}var n=t.prototype;return n.map=function(t){return this===j||this===D?this:R.Done(t(this.value))},n.flatMap=function(t){return this===j||this===D?this:t(this.value)},n.mapOkToResult=function(t){return this.map(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return n}})})},n.mapErrorToResult=function(t){return this.map(function(n){return n.match({Error:function(n){return t(n)},Ok:function(){return n}})})},n.mapOk=function(t){return this.map(function(n){return n.match({Ok:function(n){return k.Ok(t(n))},Error:function(){return n}})})},n.mapError=function(t){return this.map(function(n){return n.match({Ok:function(){return n},Error:function(n){return k.Error(t(n))}})})},n.flatMapOk=function(t){return this.flatMap(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return R.Done(n)}})})},n.flatMapError=function(t){return this.flatMap(function(n){return n.match({Ok:function(){return R.Done(n)},Error:function(n){return t(n)}})})},n.get=function(){return this.value},n.getWithDefault=function(t){return this===j||this===D?t:this.value},n.getOr=function(t){return this===j||this===D?t:this.value},n.mapOr=function(t,n){return this===j||this===D?t:n(this.value)},n.match=function(t){return this===j?t.NotAsked():this===D?t.Loading():t.Done(this.value)},n.tap=function(t){return t(this),this},n.toOption=function(){return this===j||this===D?p.None():p.Some(this.value)},n.isDone=function(){return this!==j&&this!==D},n.isLoading=function(){return this===D},n.isNotAsked=function(){return this===j},n.toJSON=function(){return this.match({NotAsked:function(){var t;return(t={})[a]=\"AsyncData\",t.tag=\"NotAsked\",t},Loading:function(){var t;return(t={})[a]=\"AsyncData\",t.tag=\"Loading\",t},Done:function(t){var n;return(n={})[a]=\"AsyncData\",n.tag=\"Done\",n.value=t,n}})},t}();b.P={Done:function(t){return{tag:\"Done\",value:t}},NotAsked:{tag:\"NotAsked\"},Loading:{tag:\"Loading\"}},b.Done=function(t){var n=E.get(t);if(null==n){var r=Object.create(N);return r.tag=\"Done\",r.value=t,Object.freeze(r),E.set(t,r),r}return n},b.Loading=function(){return D},b.NotAsked=function(){return j},b.all=function(t){for(var n,r=t.length,e=R.Done([]),u=0,o=function(){if(u>=r)return{v:e};var n=t[u];null!=n&&(e=e.flatMap(function(t){return n.map(function(n){return t.push(n),t})})),u++};;)if(n=o())return n.v},b.allFromDict=function(r){var e=t(r);return R.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},b.equals=function(t,n,r){return\"Done\"===t.tag&&\"Done\"===n.tag?r(t.value,n.value):t.tag===n.tag},b.isAsyncData=function(t){return null!=t&&\"AsyncData\"===t.__boxed_type__},b.fromJSON=function(t){return\"NotAsked\"===t.tag?R.NotAsked():\"Loading\"===t.tag?R.Loading():R.Done(t.value)},b.prototype.__boxed_type__=\"AsyncData\";var S,N=b.prototype,D=((S=Object.create(N)).tag=\"Loading\",Object.freeze(S),S),j=function(){var t=Object.create(N);return t.tag=\"NotAsked\",Object.freeze(t),t}(),R=b,A=/*#__PURE__*/function(){function t(){this._state=void 0,this._state={tag:\"Pending\"}}t.fromPromise=function(t){return P.make(function(n){t.then(function(t){return n(k.Ok(t))},function(t){return n(k.Error(t))})})};var n=t.prototype;return n.onResolve=function(t){var n;\"Pending\"===this._state.tag?(this._state.resolveCallbacks=null!=(n=this._state.resolveCallbacks)?n:[],this._state.resolveCallbacks.push(t)):\"Resolved\"===this._state.tag&&t(this._state.value)},n.onCancel=function(t){var n;\"Pending\"===this._state.tag?(this._state.cancelCallbacks=null!=(n=this._state.cancelCallbacks)?n:[],this._state.cancelCallbacks.push(t)):\"Cancelled\"===this._state.tag&&t()},n.cancel=function(){if(\"Pending\"===this._state.tag){var t=this._state,n=t.cancel,r=t.cancelCallbacks;this._state={tag:\"Cancelled\"},null!=n&&n(),null==r||r.forEach(function(t){return t()})}},n.map=function(t,n){var r=this;void 0===n&&(n=!1);var e=P.make(function(e){if(r.onResolve(function(n){e(t(n))}),n)return function(){r.cancel()}});return this.onCancel(function(){e.cancel()}),e},n.then=function(t){return this.onResolve(t),this},n.flatMap=function(t,n){var r=this;void 0===n&&(n=!1);var e=P.make(function(u){if(r.onResolve(function(n){var r=t(n);r.onResolve(u),r.onCancel(function(){return e.cancel()})}),n)return function(){r.cancel()}});return this.onCancel(function(){e.cancel()}),e},n.tap=function(t){return this.onResolve(t),this},n.tapOk=function(t){return this.onResolve(function(n){n.match({Ok:function(n){return t(n)},Error:function(){}})}),this},n.tapError=function(t){return this.onResolve(function(n){n.match({Ok:function(){},Error:function(n){return t(n)}})}),this},n.mapOkToResult=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return n}})},n)},n.mapErrorToResult=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Error:function(n){return t(n)},Ok:function(){return n}})},n)},n.mapOk=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Ok:function(n){return k.Ok(t(n))},Error:function(){return n}})},n)},n.mapError=function(t,n){return void 0===n&&(n=!1),this.map(function(n){return n.match({Ok:function(){return n},Error:function(n){return k.Error(t(n))}})},n)},n.flatMapOk=function(t,n){return void 0===n&&(n=!1),this.flatMap(function(n){return n.match({Ok:function(n){return t(n)},Error:function(){return P.value(n)}})},n)},n.flatMapError=function(t,n){return void 0===n&&(n=!1),this.flatMap(function(n){return n.match({Ok:function(){return P.value(n)},Error:function(n){return t(n)}})},n)},n.toPromise=function(){var t=this;return new Promise(function(n){t.onResolve(n)})},n.resultToPromise=function(){var t=this;return new Promise(function(n,r){t.onResolve(function(t){t.match({Ok:n,Error:r})})})},t}();A.make=function(t){var n=Object.create(M);return n._state={tag:\"Pending\"},n._state.cancel=t(function(t){if(\"Pending\"===n._state.tag){var r=n._state.resolveCallbacks;n._state={tag:\"Resolved\",value:t},null==r||r.forEach(function(n){return n(t)})}}),n},A.isFuture=function(t){return null!=t&&Object.prototype.isPrototypeOf.call(M,t)},A.value=function(t){var n=Object.create(M);return n._state={tag:\"Resolved\",value:t},n},A.all=function(t,n){void 0===n&&(n=!1);for(var r,e=t.length,u=P.value([]),o=0,i=function(){if(o>=e)return{v:u};var r=t[o];null!=r&&(u=u.flatMap(function(t){return r.map(function(n){return t.push(n),t},n)},n)),o++};;)if(r=i())return r.v},A.allFromDict=function(r){var e=t(r);return P.all(n(r)).map(function(t){return Object.fromEntries(c(e,t))})},A.wait=function(t){return P.make(function(n){var r=setTimeout(function(){return n()},t);return function(){return clearTimeout(r)}})},A.retry=function(t,n){var r=n.max;return function n(e){return t(e).flatMapError(function(t){return e+1<r?n(e+1):P.value(k.Error(t))})}(0)},A.concurrent=function(t,n){var r=n.concurrency;return P.make(function(n){var e=Array(t.length),u=r-1,o=0;0!==t.length?t.slice(0,r).forEach(function r(i,a){return i().tap(function(i){if(e[a]=i,++o<t.length){var c=t[++u];null!=c&&r(c,u)}else n(e)})}):n([])})};var M=Object.create(null,Object.getOwnPropertyDescriptors(A.prototype)),P=A,x={make:function(){var t;return[P.make(function(n){t=n}),t]}},C=Symbol(\"NOT_COMPUTED\");function z(){return z=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},z.apply(this,arguments)}var J={__proto__:null,encode:function(t,n){return JSON.stringify(t,function(t,n){return null==n?n:\"string\"==typeof n[a]?z({},n,{__boxed_type__:n[a]}):n},n)},decode:function(t){return JSON.parse(t,function(t,n){return null==n?n:\"Option\"===n.__boxed_type__?p.fromJSON(n):\"Result\"===n.__boxed_type__?k.fromJSON(n):\"AsyncData\"===n.__boxed_type__?R.fromJSON(n):n})}};exports.Array=y,exports.AsyncData=R,exports.Deferred=x,exports.Dict=e,exports.Future=P,exports.Lazy=function(t){var n={contents:C};return{get:function(){return n.contents===C&&(n.contents=t()),n.contents}}},exports.Option=p,exports.Result=k,exports.Serializer=J;\n//# sourceMappingURL=Boxed.js.map\n","import { Inject, Injectable, type OnModuleDestroy, type OnModuleInit } from \"@nestjs/common\";\nimport type { Options } from \"amqplib\";\nimport { Future, Result } from \"@swan-io/boxed\";\nimport type { ContractDefinition, InferPublisherNames } from \"@amqp-contract/contract\";\nimport type { AmqpConnectionManagerOptions, ConnectionUrl } from \"amqp-connection-manager\";\nimport {\n MessageValidationError,\n TechnicalError,\n TypedAmqpClient,\n type ClientInferPublisherInput,\n} from \"@amqp-contract/client\";\nimport { MODULE_OPTIONS_TOKEN } from \"./client.module-definition.js\";\n\n/**\n * Configuration options for the AMQP client NestJS module.\n *\n * @typeParam TContract - The contract definition type\n *\n * @example\n * ```typescript\n * const options: AmqpClientModuleOptions<typeof contract> = {\n * contract: myContract,\n * urls: ['amqp://localhost'],\n * connectionOptions: {\n * heartbeatIntervalInSeconds: 30\n * }\n * };\n * ```\n */\nexport interface AmqpClientModuleOptions<TContract extends ContractDefinition> {\n /** The AMQP contract definition specifying publishers and their message schemas */\n contract: 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 client service for NestJS applications.\n *\n * This service wraps {@link TypedAmqpClient} and integrates it with the NestJS\n * lifecycle, automatically initializing the connection 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 { AmqpClientModule } from '@amqp-contract/client-nestjs';\n *\n * @Module({\n * imports: [\n * AmqpClientModule.forRoot({\n * contract: myContract,\n * urls: ['amqp://localhost']\n * })\n * ]\n * })\n * export class AppModule {}\n *\n * // In your service\n * import { AmqpClientService } from '@amqp-contract/client-nestjs';\n *\n * @Injectable()\n * export class OrderService {\n * constructor(\n * private readonly amqpClient: AmqpClientService<typeof myContract>\n * ) {}\n *\n * async createOrder(order: Order) {\n * const result = await this.amqpClient.publish('orderCreated', {\n * orderId: order.id,\n * amount: order.total\n * }).resultToPromise();\n *\n * if (result.isError()) {\n * throw new Error('Failed to publish order event');\n * }\n * }\n * }\n * ```\n */\n@Injectable()\nexport class AmqpClientService<TContract extends ContractDefinition>\n implements OnModuleInit, OnModuleDestroy\n{\n private client: TypedAmqpClient<TContract> | null = null;\n\n constructor(\n @Inject(MODULE_OPTIONS_TOKEN)\n private readonly options: AmqpClientModuleOptions<TContract>,\n ) {}\n\n /**\n * Initialize the AMQP client when the NestJS module starts.\n *\n * This lifecycle hook automatically creates and initializes the client\n * when the NestJS application starts up. The connection will be established\n * in the background with automatic reconnection handling.\n */\n async onModuleInit(): Promise<void> {\n const clientResult = await TypedAmqpClient.create(this.options);\n if (clientResult.isError()) {\n throw new Error(`Failed to create AMQP client: ${clientResult.error.message}`);\n }\n this.client = clientResult.get();\n }\n\n /**\n * Close the AMQP client when the NestJS module is destroyed.\n *\n * This lifecycle hook ensures proper cleanup of resources when the\n * NestJS application shuts down, gracefully closing the connection\n * and cleaning up all consumers.\n */\n async onModuleDestroy(): Promise<void> {\n if (this.client) {\n await this.client.close().resultToPromise();\n this.client = null;\n }\n }\n\n /**\n * Publish a message using a contract-defined publisher.\n *\n * This method provides type-safe message publishing with automatic validation\n * and explicit error handling through the Result type.\n *\n * @param publisherName - The name of the publisher from the contract\n * @param message - The message payload (type-checked against the contract)\n * @param options - Optional AMQP publish options (e.g., persistence, headers)\n * @returns A Future that resolves to a Result indicating success or failure\n *\n * @example\n * ```typescript\n * const result = await this.amqpClient.publish('orderCreated', {\n * orderId: '123',\n * amount: 99.99\n * }).resultToPromise();\n *\n * if (result.isError()) {\n * console.error('Publish failed:', result.error);\n * }\n * ```\n */\n publish<TName extends InferPublisherNames<TContract>>(\n publisherName: TName,\n message: ClientInferPublisherInput<TContract, TName>,\n options?: Options.Publish,\n ): Future<Result<boolean, TechnicalError | MessageValidationError>> {\n if (!this.client) {\n return Future.value(\n Result.Error(\n new TechnicalError(\n \"Client not initialized. Ensure the module has been initialized before publishing.\",\n ),\n ),\n );\n }\n\n return this.client.publish(publisherName, message, options);\n }\n}\n","import { Module } from \"@nestjs/common\";\nimport { ConfigurableModuleClass } from \"./client.module-definition.js\";\nimport { AmqpClientService } from \"./client.service.js\";\n\n/**\n * NestJS module for AMQP client integration\n * This module provides type-safe AMQP client functionality using @amqp-contract/client\n * without relying on NestJS decorators (except for dependency injection)\n */\n@Module({\n providers: [AmqpClientService],\n exports: [AmqpClientService],\n})\nexport class AmqpClientModule extends ConfigurableModuleClass {}\n"],"x_google_ignoreList":[1],"mappings":"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"}
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
**@amqp-contract/client-nestjs**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
# @amqp-contract/client-nestjs
|
|
6
|
+
|
|
7
|
+
## Classes
|
|
8
|
+
|
|
9
|
+
### AmqpClientModule
|
|
10
|
+
|
|
11
|
+
Defined in: [packages/client-nestjs/src/client.module.ts:14](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.module.ts#L14)
|
|
12
|
+
|
|
13
|
+
NestJS module for AMQP client integration
|
|
14
|
+
This module provides type-safe AMQP client functionality using @amqp-contract/client
|
|
15
|
+
without relying on NestJS decorators (except for dependency injection)
|
|
16
|
+
|
|
17
|
+
#### Extends
|
|
18
|
+
|
|
19
|
+
- `ConfigurableModuleClass`
|
|
20
|
+
|
|
21
|
+
#### Indexable
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
[key: string]: any
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### Constructors
|
|
28
|
+
|
|
29
|
+
##### Constructor
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
new AmqpClientModule(): AmqpClientModule;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Defined in: node\_modules/.pnpm/@nestjs+common@11.1.10\_reflect-metadata@0.2.2\_rxjs@7.8.2/node\_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.d.ts:12
|
|
36
|
+
|
|
37
|
+
###### Returns
|
|
38
|
+
|
|
39
|
+
[`AmqpClientModule`](#amqpclientmodule)
|
|
40
|
+
|
|
41
|
+
###### Inherited from
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
ConfigurableModuleClass.constructor
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
#### Properties
|
|
48
|
+
|
|
49
|
+
| Property | Modifier | Type | Inherited from | Defined in |
|
|
50
|
+
| ------ | ------ | ------ | ------ | ------ |
|
|
51
|
+
| <a id="forroot"></a> `forRoot` | `static` | (`options`) => `DynamicModule` | `ConfigurableModuleClass.forRoot` | |
|
|
52
|
+
| <a id="forrootasync"></a> `forRootAsync` | `static` | (`options`) => `DynamicModule` | `ConfigurableModuleClass.forRootAsync` | |
|
|
53
|
+
|
|
54
|
+
***
|
|
55
|
+
|
|
56
|
+
### AmqpClientService
|
|
57
|
+
|
|
58
|
+
Defined in: [packages/client-nestjs/src/client.service.ts:86](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L86)
|
|
59
|
+
|
|
60
|
+
Type-safe AMQP client service for NestJS applications.
|
|
61
|
+
|
|
62
|
+
This service wraps TypedAmqpClient and integrates it with the NestJS
|
|
63
|
+
lifecycle, automatically initializing the connection on module init and
|
|
64
|
+
cleaning up resources on module destroy.
|
|
65
|
+
|
|
66
|
+
#### Example
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// In your module
|
|
70
|
+
import { AmqpClientModule } from '@amqp-contract/client-nestjs';
|
|
71
|
+
|
|
72
|
+
@Module({
|
|
73
|
+
imports: [
|
|
74
|
+
AmqpClientModule.forRoot({
|
|
75
|
+
contract: myContract,
|
|
76
|
+
urls: ['amqp://localhost']
|
|
77
|
+
})
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
export class AppModule {}
|
|
81
|
+
|
|
82
|
+
// In your service
|
|
83
|
+
import { AmqpClientService } from '@amqp-contract/client-nestjs';
|
|
84
|
+
|
|
85
|
+
@Injectable()
|
|
86
|
+
export class OrderService {
|
|
87
|
+
constructor(
|
|
88
|
+
private readonly amqpClient: AmqpClientService<typeof myContract>
|
|
89
|
+
) {}
|
|
90
|
+
|
|
91
|
+
async createOrder(order: Order) {
|
|
92
|
+
const result = await this.amqpClient.publish('orderCreated', {
|
|
93
|
+
orderId: order.id,
|
|
94
|
+
amount: order.total
|
|
95
|
+
}).resultToPromise();
|
|
96
|
+
|
|
97
|
+
if (result.isError()) {
|
|
98
|
+
throw new Error('Failed to publish order event');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### Type Parameters
|
|
105
|
+
|
|
106
|
+
| Type Parameter | Description |
|
|
107
|
+
| ------ | ------ |
|
|
108
|
+
| `TContract` *extends* `ContractDefinition` | The contract definition type |
|
|
109
|
+
|
|
110
|
+
#### Implements
|
|
111
|
+
|
|
112
|
+
- `OnModuleInit`
|
|
113
|
+
- `OnModuleDestroy`
|
|
114
|
+
|
|
115
|
+
#### Constructors
|
|
116
|
+
|
|
117
|
+
##### Constructor
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
new AmqpClientService<TContract>(options): AmqpClientService<TContract>;
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Defined in: [packages/client-nestjs/src/client.service.ts:91](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L91)
|
|
124
|
+
|
|
125
|
+
###### Parameters
|
|
126
|
+
|
|
127
|
+
| Parameter | Type |
|
|
128
|
+
| ------ | ------ |
|
|
129
|
+
| `options` | [`AmqpClientModuleOptions`](#amqpclientmoduleoptions)\<`TContract`\> |
|
|
130
|
+
|
|
131
|
+
###### Returns
|
|
132
|
+
|
|
133
|
+
[`AmqpClientService`](#amqpclientservice)\<`TContract`\>
|
|
134
|
+
|
|
135
|
+
#### Methods
|
|
136
|
+
|
|
137
|
+
##### onModuleDestroy()
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
onModuleDestroy(): Promise<void>;
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Defined in: [packages/client-nestjs/src/client.service.ts:118](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L118)
|
|
144
|
+
|
|
145
|
+
Close the AMQP client when the NestJS module is destroyed.
|
|
146
|
+
|
|
147
|
+
This lifecycle hook ensures proper cleanup of resources when the
|
|
148
|
+
NestJS application shuts down, gracefully closing the connection
|
|
149
|
+
and cleaning up all consumers.
|
|
150
|
+
|
|
151
|
+
###### Returns
|
|
152
|
+
|
|
153
|
+
`Promise`\<`void`\>
|
|
154
|
+
|
|
155
|
+
###### Implementation of
|
|
156
|
+
|
|
157
|
+
```ts
|
|
158
|
+
OnModuleDestroy.onModuleDestroy
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
##### onModuleInit()
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
onModuleInit(): Promise<void>;
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Defined in: [packages/client-nestjs/src/client.service.ts:103](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L103)
|
|
168
|
+
|
|
169
|
+
Initialize the AMQP client when the NestJS module starts.
|
|
170
|
+
|
|
171
|
+
This lifecycle hook automatically creates and initializes the client
|
|
172
|
+
when the NestJS application starts up. The connection will be established
|
|
173
|
+
in the background with automatic reconnection handling.
|
|
174
|
+
|
|
175
|
+
###### Returns
|
|
176
|
+
|
|
177
|
+
`Promise`\<`void`\>
|
|
178
|
+
|
|
179
|
+
###### Implementation of
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
OnModuleInit.onModuleInit
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
##### publish()
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
publish<TName>(
|
|
189
|
+
publisherName,
|
|
190
|
+
message,
|
|
191
|
+
options?): Future<Result<boolean, TechnicalError | MessageValidationError>>;
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Defined in: [packages/client-nestjs/src/client.service.ts:148](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L148)
|
|
195
|
+
|
|
196
|
+
Publish a message using a contract-defined publisher.
|
|
197
|
+
|
|
198
|
+
This method provides type-safe message publishing with automatic validation
|
|
199
|
+
and explicit error handling through the Result type.
|
|
200
|
+
|
|
201
|
+
###### Type Parameters
|
|
202
|
+
|
|
203
|
+
| Type Parameter |
|
|
204
|
+
| ------ |
|
|
205
|
+
| `TName` *extends* `string` \| `number` \| `symbol` |
|
|
206
|
+
|
|
207
|
+
###### Parameters
|
|
208
|
+
|
|
209
|
+
| Parameter | Type | Description |
|
|
210
|
+
| ------ | ------ | ------ |
|
|
211
|
+
| `publisherName` | `TName` | The name of the publisher from the contract |
|
|
212
|
+
| `message` | `ClientInferPublisherInput`\<`TContract`, `TName`\> | The message payload (type-checked against the contract) |
|
|
213
|
+
| `options?` | `Publish` | Optional AMQP publish options (e.g., persistence, headers) |
|
|
214
|
+
|
|
215
|
+
###### Returns
|
|
216
|
+
|
|
217
|
+
`Future`\<`Result`\<`boolean`, `TechnicalError` \| `MessageValidationError`\>\>
|
|
218
|
+
|
|
219
|
+
A Future that resolves to a Result indicating success or failure
|
|
220
|
+
|
|
221
|
+
###### Example
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
const result = await this.amqpClient.publish('orderCreated', {
|
|
225
|
+
orderId: '123',
|
|
226
|
+
amount: 99.99
|
|
227
|
+
}).resultToPromise();
|
|
228
|
+
|
|
229
|
+
if (result.isError()) {
|
|
230
|
+
console.error('Publish failed:', result.error);
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Interfaces
|
|
235
|
+
|
|
236
|
+
### AmqpClientModuleOptions
|
|
237
|
+
|
|
238
|
+
Defined in: [packages/client-nestjs/src/client.service.ts:30](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L30)
|
|
239
|
+
|
|
240
|
+
Configuration options for the AMQP client NestJS module.
|
|
241
|
+
|
|
242
|
+
#### Example
|
|
243
|
+
|
|
244
|
+
```typescript
|
|
245
|
+
const options: AmqpClientModuleOptions<typeof contract> = {
|
|
246
|
+
contract: myContract,
|
|
247
|
+
urls: ['amqp://localhost'],
|
|
248
|
+
connectionOptions: {
|
|
249
|
+
heartbeatIntervalInSeconds: 30
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
#### Type Parameters
|
|
255
|
+
|
|
256
|
+
| Type Parameter | Description |
|
|
257
|
+
| ------ | ------ |
|
|
258
|
+
| `TContract` *extends* `ContractDefinition` | The contract definition type |
|
|
259
|
+
|
|
260
|
+
#### Properties
|
|
261
|
+
|
|
262
|
+
| Property | Type | Description | Defined in |
|
|
263
|
+
| ------ | ------ | ------ | ------ |
|
|
264
|
+
| <a id="connectionoptions"></a> `connectionOptions?` | `AmqpConnectionManagerOptions` | Optional connection configuration (heartbeat, reconnect settings, etc.) | [packages/client-nestjs/src/client.service.ts:36](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L36) |
|
|
265
|
+
| <a id="contract"></a> `contract` | `TContract` | The AMQP contract definition specifying publishers and their message schemas | [packages/client-nestjs/src/client.service.ts:32](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L32) |
|
|
266
|
+
| <a id="urls"></a> `urls` | `ConnectionUrl`[] | AMQP broker URL(s). Multiple URLs provide failover support | [packages/client-nestjs/src/client.service.ts:34](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.service.ts#L34) |
|
|
267
|
+
|
|
268
|
+
## Variables
|
|
269
|
+
|
|
270
|
+
### MODULE\_OPTIONS\_TOKEN
|
|
271
|
+
|
|
272
|
+
```ts
|
|
273
|
+
MODULE_OPTIONS_TOKEN: string | symbol;
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Defined in: [packages/client-nestjs/src/client.module-definition.ts:9](https://github.com/btravers/amqp-contract/blob/63bb54252f8a9109544152686427ef223964c15c/packages/client-nestjs/src/client.module-definition.ts#L9)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/client-nestjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "NestJS integration for @amqp-contract/client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
@@ -39,11 +39,12 @@
|
|
|
39
39
|
"module": "./dist/index.mjs",
|
|
40
40
|
"types": "./dist/index.d.mts",
|
|
41
41
|
"files": [
|
|
42
|
-
"dist"
|
|
42
|
+
"dist",
|
|
43
|
+
"docs"
|
|
43
44
|
],
|
|
44
45
|
"dependencies": {
|
|
45
|
-
"@amqp-contract/client": "0.
|
|
46
|
-
"@amqp-contract/contract": "0.
|
|
46
|
+
"@amqp-contract/client": "0.3.0",
|
|
47
|
+
"@amqp-contract/contract": "0.3.0"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@nestjs/common": "11.1.10",
|
|
@@ -51,24 +52,28 @@
|
|
|
51
52
|
"@types/amqplib": "0.10.8",
|
|
52
53
|
"@types/node": "25.0.3",
|
|
53
54
|
"@vitest/coverage-v8": "4.0.16",
|
|
55
|
+
"amqp-connection-manager": "5.0.0",
|
|
54
56
|
"amqplib": "0.10.9",
|
|
55
57
|
"reflect-metadata": "0.2.2",
|
|
56
58
|
"rxjs": "7.8.2",
|
|
57
59
|
"tsdown": "0.18.2",
|
|
60
|
+
"typedoc": "0.28.3",
|
|
61
|
+
"typedoc-plugin-markdown": "4.9.0",
|
|
58
62
|
"typescript": "5.9.3",
|
|
59
63
|
"vitest": "4.0.16",
|
|
60
64
|
"zod": "4.2.1",
|
|
61
|
-
"@amqp-contract/tsconfig": "0.0.0"
|
|
65
|
+
"@amqp-contract/tsconfig": "0.0.0",
|
|
66
|
+
"@amqp-contract/typedoc": "0.0.1"
|
|
62
67
|
},
|
|
63
68
|
"peerDependencies": {
|
|
64
69
|
"@nestjs/common": ">=11.0.0",
|
|
65
70
|
"@nestjs/core": ">=11.0.0",
|
|
66
|
-
"amqplib": ">=0.10.0",
|
|
67
71
|
"reflect-metadata": ">=0.1.13",
|
|
68
72
|
"rxjs": ">=7.0.0"
|
|
69
73
|
},
|
|
70
74
|
"scripts": {
|
|
71
75
|
"build": "tsdown src/index.ts --format cjs,esm --dts --clean",
|
|
76
|
+
"build:docs": "typedoc",
|
|
72
77
|
"dev": "tsdown src/index.ts --format cjs,esm --dts --watch",
|
|
73
78
|
"test": "vitest run --project unit",
|
|
74
79
|
"test:watch": "vitest --project unit",
|