@rsdk/nats.common 5.4.0-next.11 → 5.4.0-next.12
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/CHANGELOG.md +4 -0
- package/dist/client/client.config.d.ts +1 -0
- package/dist/client/client.config.js +8 -0
- package/dist/client/client.config.js.map +1 -1
- package/dist/client/client.constants.d.ts +1 -0
- package/dist/client/client.constants.js +2 -1
- package/dist/client/client.constants.js.map +1 -1
- package/dist/client/client.module.d.ts +2 -6
- package/dist/client/client.module.js +18 -16
- package/dist/client/client.module.js.map +1 -1
- package/dist/client/client.plugin.d.ts +10 -0
- package/dist/client/client.plugin.js +18 -0
- package/dist/client/client.plugin.js.map +1 -0
- package/dist/client/jetstream-client.provider.d.ts +2 -1
- package/dist/client/jetstream-client.provider.js +5 -2
- package/dist/client/jetstream-client.provider.js.map +1 -1
- package/dist/client/module-options.interface.d.ts +8 -0
- package/dist/client/module-options.interface.js +3 -0
- package/dist/client/module-options.interface.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/client/client.config.ts +6 -0
- package/src/client/client.constants.ts +2 -0
- package/src/client/client.module.ts +31 -39
- package/src/client/client.plugin.ts +18 -0
- package/src/client/jetstream-client.provider.ts +6 -2
- package/src/client/module-options.interface.ts +10 -0
- package/src/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.4.0-rc.0](https://github.com/R-Vision/rsdk/compare/v5.4.0-next.11...v5.4.0-rc.0) (2024-12-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rsdk/nats.common
|
|
9
|
+
|
|
6
10
|
## [5.4.0-next.11](https://github.com/R-Vision/rsdk/compare/v5.4.0-next.10...v5.4.0-next.11) (2024-12-04)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package @rsdk/nats.common
|
|
@@ -17,6 +17,7 @@ let DefaultNatsConfig = class DefaultNatsConfig extends core_1.Config {
|
|
|
17
17
|
debug;
|
|
18
18
|
maxReconnectAttempts;
|
|
19
19
|
reconnectTimeWait;
|
|
20
|
+
defaultJetStreamDomain;
|
|
20
21
|
};
|
|
21
22
|
exports.DefaultNatsConfig = DefaultNatsConfig;
|
|
22
23
|
__decorate([
|
|
@@ -46,6 +47,13 @@ __decorate([
|
|
|
46
47
|
}),
|
|
47
48
|
__metadata("design:type", Number)
|
|
48
49
|
], DefaultNatsConfig.prototype, "reconnectTimeWait", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, core_1.Property)('NATS_DEFAULT_JET_STREAM_DOMAIN', new core_1.StringParser(), {
|
|
52
|
+
defaultValue: 'main',
|
|
53
|
+
description: 'Default JetStream domain',
|
|
54
|
+
}),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], DefaultNatsConfig.prototype, "defaultJetStreamDomain", void 0);
|
|
49
57
|
exports.DefaultNatsConfig = DefaultNatsConfig = __decorate([
|
|
50
58
|
(0, core_1.ConfigSection)()
|
|
51
59
|
], DefaultNatsConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.config.js","sourceRoot":"","sources":["../../src/client/client.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAQoB;AAEP,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAGxD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAM;IAI3C,OAAO,CAAY;IAMnB,KAAK,CAAW;IAOhB,oBAAoB,CAAU;IAM9B,iBAAiB,CAAU;
|
|
1
|
+
{"version":3,"file":"client.config.js","sourceRoot":"","sources":["../../src/client/client.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAQoB;AAEP,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAGxD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAM;IAI3C,OAAO,CAAY;IAMnB,KAAK,CAAW;IAOhB,oBAAoB,CAAU;IAM9B,iBAAiB,CAAU;IAM3B,sBAAsB,CAAU;CACjC,CAAA;AA9BY,8CAAiB;AAI5B;IAHC,IAAA,eAAQ,EAAC,cAAc,EAAE,IAAI,kBAAW,CAAC,IAAI,mBAAY,EAAE,CAAC,EAAE;QAC7D,WAAW,EAAE,kBAAkB;KAChC,CAAC;;kDACiB;AAMnB;IAJC,IAAA,eAAQ,EAAC,YAAY,EAAE,IAAI,iBAAU,EAAE,EAAE;QACxC,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;gDACc;AAOhB;IALC,IAAA,eAAQ,EAAC,6BAA6B,EAAE,IAAI,gBAAS,EAAE,EAAE;QACxD,YAAY,EAAE,CAAC,CAAC;QAChB,WAAW,EACT,yGAAyG;KAC5G,CAAC;;+DAC4B;AAM9B;IAJC,IAAA,eAAQ,EAAC,0BAA0B,EAAE,IAAI,gBAAS,EAAE,EAAE;QACrD,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,4DAA4D;KAC1E,CAAC;;4DACyB;AAM3B;IAJC,IAAA,eAAQ,EAAC,gCAAgC,EAAE,IAAI,mBAAY,EAAE,EAAE;QAC9D,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,0BAA0B;KACxC,CAAC;;iEAC8B;4BA7BrB,iBAAiB;IAD7B,IAAA,oBAAa,GAAE;GACH,iBAAiB,CA8B7B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE = "NATS_CLIENT_FOR_PACKAGE";
|
|
2
2
|
export declare const NATS_JET_STREAM_INJECTION_TOKEN_FOR_PACKAGE = "NATS_JET_STREAM_FOR_PACKAGE";
|
|
3
|
+
export declare const NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE = "NATS_CONFIG_FOR_PACKAGE";
|
|
3
4
|
export declare const NATS_CONFIG_INJECTION_TOKEN: unique symbol;
|
|
4
5
|
export declare const NATS_CLIENT_INJECTION_TOKEN: unique symbol;
|
|
5
6
|
export declare const NATS_JETSTREAM_CLIENT_INJECTION_TOKEN: unique symbol;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNatsJetStreamToken = exports.createNatsClientToken = exports.createNatsConfigToken = exports.NATS_JETSTREAM_CLIENT_INJECTION_TOKEN = exports.NATS_CLIENT_INJECTION_TOKEN = exports.NATS_CONFIG_INJECTION_TOKEN = exports.NATS_JET_STREAM_INJECTION_TOKEN_FOR_PACKAGE = exports.NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE = void 0;
|
|
3
|
+
exports.createNatsJetStreamToken = exports.createNatsClientToken = exports.createNatsConfigToken = exports.NATS_JETSTREAM_CLIENT_INJECTION_TOKEN = exports.NATS_CLIENT_INJECTION_TOKEN = exports.NATS_CONFIG_INJECTION_TOKEN = exports.NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE = exports.NATS_JET_STREAM_INJECTION_TOKEN_FOR_PACKAGE = exports.NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE = void 0;
|
|
4
4
|
exports.NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE = 'NATS_CLIENT_FOR_PACKAGE';
|
|
5
5
|
exports.NATS_JET_STREAM_INJECTION_TOKEN_FOR_PACKAGE = 'NATS_JET_STREAM_FOR_PACKAGE';
|
|
6
|
+
exports.NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE = 'NATS_CONFIG_FOR_PACKAGE';
|
|
6
7
|
exports.NATS_CONFIG_INJECTION_TOKEN = Symbol('NatsConfig');
|
|
7
8
|
exports.NATS_CLIENT_INJECTION_TOKEN = Symbol('NatsClient');
|
|
8
9
|
exports.NATS_JETSTREAM_CLIENT_INJECTION_TOKEN = Symbol('NatsJetStreamClient');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.constants.js","sourceRoot":"","sources":["../../src/client/client.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uCAAuC,GAClD,yBAAyB,CAAC;AACf,QAAA,2CAA2C,GACtD,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.constants.js","sourceRoot":"","sources":["../../src/client/client.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uCAAuC,GAClD,yBAAyB,CAAC;AACf,QAAA,2CAA2C,GACtD,6BAA6B,CAAC;AACnB,QAAA,uCAAuC,GAClD,yBAAyB,CAAC;AAEf,QAAA,2BAA2B,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACnD,QAAA,2BAA2B,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACnD,QAAA,qCAAqC,GAAG,MAAM,CACzD,qBAAqB,CACtB,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAU,EAAE,CAC5D,eAAe,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AADzB,QAAA,qBAAqB,yBACI;AAE/B,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAU,EAAE,CAC5D,eAAe,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AADzB,QAAA,qBAAqB,yBACI;AAE/B,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAU,EAAE,CAC/D,mBAAmB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AAD7B,QAAA,wBAAwB,4BACK"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import type { DynamicModule } from '@nestjs/common';
|
|
2
|
-
import type {
|
|
3
|
-
import { DefaultNatsConfig } from './client.config';
|
|
2
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
4
3
|
export declare class NatsClientModule {
|
|
5
|
-
static forRoot(
|
|
6
|
-
connectionName: string;
|
|
7
|
-
configConstructor: Constructor<DefaultNatsConfig>;
|
|
8
|
-
}[]): DynamicModule;
|
|
4
|
+
static forRoot({ connectionName, configConstructor, jetstreamOptions, }: ModuleOptions): DynamicModule;
|
|
9
5
|
}
|
|
@@ -15,26 +15,28 @@ const client_provider_1 = require("./client.provider");
|
|
|
15
15
|
const jetstream_client_provider_1 = require("./jetstream-client.provider");
|
|
16
16
|
const topics_service_1 = require("./topics.service");
|
|
17
17
|
let NatsClientModule = NatsClientModule_1 = class NatsClientModule {
|
|
18
|
-
static forRoot(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
18
|
+
static forRoot({ connectionName, configConstructor, jetstreamOptions, }) {
|
|
19
|
+
configConstructor = configConstructor ?? client_config_1.DefaultNatsConfig;
|
|
20
|
+
let natsConfigToken = client_constants_1.NATS_CONFIG_INJECTION_TOKEN;
|
|
21
|
+
let natsClientToken = client_constants_1.NATS_CLIENT_INJECTION_TOKEN;
|
|
22
|
+
let natsJetStreamToken = client_constants_1.NATS_JETSTREAM_CLIENT_INJECTION_TOKEN;
|
|
23
|
+
if (connectionName) {
|
|
24
|
+
natsConfigToken = (0, client_constants_1.createNatsConfigToken)(connectionName);
|
|
25
|
+
natsClientToken = (0, client_constants_1.createNatsClientToken)(connectionName);
|
|
26
|
+
natsJetStreamToken = (0, client_constants_1.createNatsJetStreamToken)(connectionName);
|
|
28
27
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
const providers = [
|
|
29
|
+
(0, client_provider_1.createNatsProvider)(configConstructor, natsClientToken),
|
|
30
|
+
(0, jetstream_client_provider_1.createNatsJetStreamProvider)(natsClientToken, natsJetStreamToken, jetstreamOptions),
|
|
31
|
+
{
|
|
32
|
+
provide: natsConfigToken,
|
|
33
|
+
inject: [configConstructor],
|
|
33
34
|
useFactory: (config) => config,
|
|
34
|
-
}
|
|
35
|
-
|
|
35
|
+
},
|
|
36
|
+
];
|
|
36
37
|
return {
|
|
37
38
|
module: NatsClientModule_1,
|
|
39
|
+
global: true,
|
|
38
40
|
providers,
|
|
39
41
|
exports: providers,
|
|
40
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.module.js","sourceRoot":"","sources":["../../src/client/client.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAgD;
|
|
1
|
+
{"version":3,"file":"client.module.js","sourceRoot":"","sources":["../../src/client/client.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAgD;AAEhD,mDAAoD;AACpD,yDAO4B;AAC5B,uDAAuD;AACvD,2EAA0E;AAE1E,qDAAiD;AAO1C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACF;QACd,iBAAiB,GAAG,iBAAiB,IAAI,iCAAiB,CAAC;QAE3D,IAAI,eAAe,GAAoB,8CAA2B,CAAC;QACnE,IAAI,eAAe,GAAoB,8CAA2B,CAAC;QACnE,IAAI,kBAAkB,GACpB,wDAAqC,CAAC;QAExC,IAAI,cAAc,EAAE,CAAC;YACnB,eAAe,GAAG,IAAA,wCAAqB,EAAC,cAAc,CAAC,CAAC;YACxD,eAAe,GAAG,IAAA,wCAAqB,EAAC,cAAc,CAAC,CAAC;YACxD,kBAAkB,GAAG,IAAA,2CAAwB,EAAC,cAAc,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,SAAS,GAAe;YAC5B,IAAA,oCAAkB,EAAC,iBAAiB,EAAE,eAAe,CAAC;YACtD,IAAA,uDAA2B,EACzB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,CACjB;YACD;gBACE,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,CAAC,iBAAiB,CAAC;gBAC3B,UAAU,EAAE,CAAC,MAAyB,EAAE,EAAE,CAAC,MAAM;aAClD;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,MAAM,EAAE,IAAI;YACZ,SAAS;YACT,OAAO,EAAE,SAAS;SACnB,CAAC;IACJ,CAAC;CACF,CAAA;AAxCY,4CAAgB;2BAAhB,gBAAgB;IAL5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,8BAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,8BAAa,CAAC;KACzB,CAAC;GACW,gBAAgB,CAwC5B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { Constructor } from '@rsdk/common';
|
|
3
|
+
import type { AppropriateTransports, PlatformAppPlugin } from '@rsdk/core';
|
|
4
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
5
|
+
export declare class NatsClientPlugin implements PlatformAppPlugin {
|
|
6
|
+
private readonly options?;
|
|
7
|
+
constructor(options?: ModuleOptions | undefined);
|
|
8
|
+
forTransports(): AppropriateTransports;
|
|
9
|
+
modules(): (DynamicModule | Constructor)[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NatsClientPlugin = void 0;
|
|
4
|
+
const client_module_1 = require("./client.module");
|
|
5
|
+
class NatsClientPlugin {
|
|
6
|
+
options;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
forTransports() {
|
|
11
|
+
return 'any';
|
|
12
|
+
}
|
|
13
|
+
modules() {
|
|
14
|
+
return [client_module_1.NatsClientModule.forRoot(this.options ?? {})];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.NatsClientPlugin = NatsClientPlugin;
|
|
18
|
+
//# sourceMappingURL=client.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.plugin.js","sourceRoot":"","sources":["../../src/client/client.plugin.ts"],"names":[],"mappings":";;;AAIA,mDAAmD;AAGnD,MAAa,gBAAgB;IACE;IAA7B,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,aAAa;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,OAAO,CAAC,gCAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;CACF;AAVD,4CAUC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { FactoryProvider, InjectionToken } from '@nestjs/common';
|
|
2
|
-
|
|
2
|
+
import type { JetStreamOptions } from 'nats';
|
|
3
|
+
export declare const createNatsJetStreamProvider: (natsClientToken: InjectionToken, natsJetStreamToken: InjectionToken, opts?: JetStreamOptions) => FactoryProvider;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createNatsJetStreamProvider = void 0;
|
|
4
|
-
const createNatsJetStreamProvider = (natsClientToken, natsJetStreamToken) => ({
|
|
4
|
+
const createNatsJetStreamProvider = (natsClientToken, natsJetStreamToken, opts) => ({
|
|
5
5
|
inject: [natsClientToken],
|
|
6
6
|
provide: natsJetStreamToken,
|
|
7
7
|
useFactory(client) {
|
|
8
|
-
return client.jetstream(
|
|
8
|
+
return client.jetstream({
|
|
9
|
+
domain: process.env.NATS_DEFAULT_JET_STREAM_DOMAIN,
|
|
10
|
+
...opts,
|
|
11
|
+
});
|
|
9
12
|
},
|
|
10
13
|
});
|
|
11
14
|
exports.createNatsJetStreamProvider = createNatsJetStreamProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream-client.provider.js","sourceRoot":"","sources":["../../src/client/jetstream-client.provider.ts"],"names":[],"mappings":";;;AAGO,MAAM,2BAA2B,GAAG,CACzC,eAA+B,EAC/B,kBAAkC,
|
|
1
|
+
{"version":3,"file":"jetstream-client.provider.js","sourceRoot":"","sources":["../../src/client/jetstream-client.provider.ts"],"names":[],"mappings":";;;AAGO,MAAM,2BAA2B,GAAG,CACzC,eAA+B,EAC/B,kBAAkC,EAClC,IAAuB,EACN,EAAE,CAAC,CAAC;IACrB,MAAM,EAAE,CAAC,eAAe,CAAC;IACzB,OAAO,EAAE,kBAAkB;IAC3B,UAAU,CAAC,MAAsB;QAC/B,OAAO,MAAM,CAAC,SAAS,CAAC;YACtB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA+B;YACnD,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAbU,QAAA,2BAA2B,+BAarC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Constructor } from '@rsdk/common';
|
|
2
|
+
import type { JetStreamOptions } from 'nats';
|
|
3
|
+
import type { DefaultNatsConfig } from './client.config';
|
|
4
|
+
export interface ModuleOptions {
|
|
5
|
+
connectionName?: string;
|
|
6
|
+
configConstructor?: Constructor<DefaultNatsConfig>;
|
|
7
|
+
jetstreamOptions?: JetStreamOptions;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-options.interface.js","sourceRoot":"","sources":["../../src/client/module-options.interface.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export { InjectNatsClient, InjectNatsJetStreamClient, } from './client/client.de
|
|
|
6
6
|
export { NatsClientModule } from './client/client.module';
|
|
7
7
|
export { handleNatsException } from './exceptions/exception.handler';
|
|
8
8
|
export { DefaultNatsConfig } from './client/client.config';
|
|
9
|
+
export { NatsClientPlugin } from './client/client.plugin';
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.DefaultNatsConfig = exports.handleNatsException = exports.NatsClientModule = exports.InjectNatsJetStreamClient = exports.InjectNatsClient = exports.NATS_TOPIC_RSDK_METADATA_SCOPE = exports.TopicType = exports.getSubjectName = exports.getStreamName = void 0;
|
|
17
|
+
exports.NatsClientPlugin = exports.DefaultNatsConfig = exports.handleNatsException = exports.NatsClientModule = exports.InjectNatsJetStreamClient = exports.InjectNatsClient = exports.NATS_TOPIC_RSDK_METADATA_SCOPE = exports.TopicType = exports.getSubjectName = exports.getStreamName = void 0;
|
|
18
18
|
var get_stream_name_fn_1 = require("./utils/get-stream-name.fn");
|
|
19
19
|
Object.defineProperty(exports, "getStreamName", { enumerable: true, get: function () { return get_stream_name_fn_1.getStreamName; } });
|
|
20
20
|
var get_subject_name_fn_1 = require("./utils/get-subject-name.fn");
|
|
@@ -32,4 +32,6 @@ var exception_handler_1 = require("./exceptions/exception.handler");
|
|
|
32
32
|
Object.defineProperty(exports, "handleNatsException", { enumerable: true, get: function () { return exception_handler_1.handleNatsException; } });
|
|
33
33
|
var client_config_1 = require("./client/client.config");
|
|
34
34
|
Object.defineProperty(exports, "DefaultNatsConfig", { enumerable: true, get: function () { return client_config_1.DefaultNatsConfig; } });
|
|
35
|
+
var client_plugin_1 = require("./client/client.plugin");
|
|
36
|
+
Object.defineProperty(exports, "NatsClientPlugin", { enumerable: true, get: function () { return client_plugin_1.NatsClientPlugin; } });
|
|
35
37
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iEAA2D;AAAlD,mHAAA,aAAa,OAAA;AACtB,mEAA6D;AAApD,qHAAA,cAAc,OAAA;AACvB,4DAMkC;AAFhC,4GAAA,SAAS,OAAA;AACT,iIAAA,8BAA8B,OAAA;AAEhC,4DAA0C;AAC1C,gEAGoC;AAFlC,qHAAA,gBAAgB,OAAA;AAChB,8HAAA,yBAAyB,OAAA;AAE3B,wDAA0D;AAAjD,iHAAA,gBAAgB,OAAA;AACzB,oEAAqE;AAA5D,wHAAA,mBAAmB,OAAA;AAC5B,wDAA2D;AAAlD,kHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iEAA2D;AAAlD,mHAAA,aAAa,OAAA;AACtB,mEAA6D;AAApD,qHAAA,cAAc,OAAA;AACvB,4DAMkC;AAFhC,4GAAA,SAAS,OAAA;AACT,iIAAA,8BAA8B,OAAA;AAEhC,4DAA0C;AAC1C,gEAGoC;AAFlC,qHAAA,gBAAgB,OAAA;AAChB,8HAAA,yBAAyB,OAAA;AAE3B,wDAA0D;AAAjD,iHAAA,gBAAgB,OAAA;AACzB,oEAAqE;AAA5D,wHAAA,mBAAmB,OAAA;AAC5B,wDAA2D;AAAlD,kHAAA,iBAAiB,OAAA;AAC1B,wDAA0D;AAAjD,iHAAA,gBAAgB,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/nats.common",
|
|
3
|
-
"version": "5.4.0-next.
|
|
3
|
+
"version": "5.4.0-next.12",
|
|
4
4
|
"description": "Common functionality for nats consumers and producers",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"lodash": "^4.17.21",
|
|
28
28
|
"protobufjs": "^7.2.3"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "88e409e787507b8acdb1fbe2af611b7ef46a9e5d"
|
|
31
31
|
}
|
|
@@ -35,4 +35,10 @@ export class DefaultNatsConfig extends Config {
|
|
|
35
35
|
description: 'Set the number of milliseconds between reconnect attempts.',
|
|
36
36
|
})
|
|
37
37
|
reconnectTimeWait!: number;
|
|
38
|
+
|
|
39
|
+
@Property('NATS_DEFAULT_JET_STREAM_DOMAIN', new StringParser(), {
|
|
40
|
+
defaultValue: 'main',
|
|
41
|
+
description: 'Default JetStream domain',
|
|
42
|
+
})
|
|
43
|
+
defaultJetStreamDomain!: string;
|
|
38
44
|
}
|
|
@@ -2,6 +2,8 @@ export const NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE =
|
|
|
2
2
|
'NATS_CLIENT_FOR_PACKAGE';
|
|
3
3
|
export const NATS_JET_STREAM_INJECTION_TOKEN_FOR_PACKAGE =
|
|
4
4
|
'NATS_JET_STREAM_FOR_PACKAGE';
|
|
5
|
+
export const NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE =
|
|
6
|
+
'NATS_CONFIG_FOR_PACKAGE';
|
|
5
7
|
|
|
6
8
|
export const NATS_CONFIG_INJECTION_TOKEN = Symbol('NatsConfig');
|
|
7
9
|
export const NATS_CLIENT_INJECTION_TOKEN = Symbol('NatsClient');
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { DynamicModule, Provider } from '@nestjs/common';
|
|
2
2
|
import { Global, Module } from '@nestjs/common';
|
|
3
|
-
import type { Constructor } from '@rsdk/common';
|
|
4
3
|
|
|
5
4
|
import { DefaultNatsConfig } from './client.config';
|
|
6
5
|
import {
|
|
@@ -13,6 +12,7 @@ import {
|
|
|
13
12
|
} from './client.constants';
|
|
14
13
|
import { createNatsProvider } from './client.provider';
|
|
15
14
|
import { createNatsJetStreamProvider } from './jetstream-client.provider';
|
|
15
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
16
16
|
import { TopicsService } from './topics.service';
|
|
17
17
|
|
|
18
18
|
@Global()
|
|
@@ -21,49 +21,41 @@ import { TopicsService } from './topics.service';
|
|
|
21
21
|
exports: [TopicsService],
|
|
22
22
|
})
|
|
23
23
|
export class NatsClientModule {
|
|
24
|
-
static forRoot(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const providers: Provider[] = [];
|
|
24
|
+
static forRoot({
|
|
25
|
+
connectionName,
|
|
26
|
+
configConstructor,
|
|
27
|
+
jetstreamOptions,
|
|
28
|
+
}: ModuleOptions): DynamicModule {
|
|
29
|
+
configConstructor = configConstructor ?? DefaultNatsConfig;
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
createNatsJetStreamToken(connectionName),
|
|
42
|
-
),
|
|
43
|
-
{
|
|
44
|
-
provide: createNatsConfigToken(connectionName),
|
|
45
|
-
inject: [configConstructor],
|
|
46
|
-
useFactory: (config: DefaultNatsConfig) => config,
|
|
47
|
-
},
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
} else {
|
|
51
|
-
providers.push(
|
|
52
|
-
createNatsProvider(DefaultNatsConfig, NATS_CLIENT_INJECTION_TOKEN),
|
|
53
|
-
createNatsJetStreamProvider(
|
|
54
|
-
NATS_CLIENT_INJECTION_TOKEN,
|
|
55
|
-
NATS_JETSTREAM_CLIENT_INJECTION_TOKEN,
|
|
56
|
-
),
|
|
57
|
-
{
|
|
58
|
-
provide: NATS_CONFIG_INJECTION_TOKEN,
|
|
59
|
-
inject: [DefaultNatsConfig],
|
|
60
|
-
useFactory: (config: DefaultNatsConfig) => config,
|
|
61
|
-
},
|
|
62
|
-
);
|
|
31
|
+
let natsConfigToken: string | symbol = NATS_CONFIG_INJECTION_TOKEN;
|
|
32
|
+
let natsClientToken: string | symbol = NATS_CLIENT_INJECTION_TOKEN;
|
|
33
|
+
let natsJetStreamToken: string | symbol =
|
|
34
|
+
NATS_JETSTREAM_CLIENT_INJECTION_TOKEN;
|
|
35
|
+
|
|
36
|
+
if (connectionName) {
|
|
37
|
+
natsConfigToken = createNatsConfigToken(connectionName);
|
|
38
|
+
natsClientToken = createNatsClientToken(connectionName);
|
|
39
|
+
natsJetStreamToken = createNatsJetStreamToken(connectionName);
|
|
63
40
|
}
|
|
64
41
|
|
|
42
|
+
const providers: Provider[] = [
|
|
43
|
+
createNatsProvider(configConstructor, natsClientToken),
|
|
44
|
+
createNatsJetStreamProvider(
|
|
45
|
+
natsClientToken,
|
|
46
|
+
natsJetStreamToken,
|
|
47
|
+
jetstreamOptions,
|
|
48
|
+
),
|
|
49
|
+
{
|
|
50
|
+
provide: natsConfigToken,
|
|
51
|
+
inject: [configConstructor],
|
|
52
|
+
useFactory: (config: DefaultNatsConfig) => config,
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
65
56
|
return {
|
|
66
57
|
module: NatsClientModule,
|
|
58
|
+
global: true,
|
|
67
59
|
providers,
|
|
68
60
|
exports: providers,
|
|
69
61
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { Constructor } from '@rsdk/common';
|
|
3
|
+
import type { AppropriateTransports, PlatformAppPlugin } from '@rsdk/core';
|
|
4
|
+
|
|
5
|
+
import { NatsClientModule } from './client.module';
|
|
6
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
7
|
+
|
|
8
|
+
export class NatsClientPlugin implements PlatformAppPlugin {
|
|
9
|
+
constructor(private readonly options?: ModuleOptions) {}
|
|
10
|
+
|
|
11
|
+
forTransports(): AppropriateTransports {
|
|
12
|
+
return 'any';
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
modules(): (DynamicModule | Constructor)[] {
|
|
16
|
+
return [NatsClientModule.forRoot(this.options ?? {})];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { FactoryProvider, InjectionToken } from '@nestjs/common';
|
|
2
|
-
import type { JetStreamClient, NatsConnection } from 'nats';
|
|
2
|
+
import type { JetStreamClient, JetStreamOptions, NatsConnection } from 'nats';
|
|
3
3
|
|
|
4
4
|
export const createNatsJetStreamProvider = (
|
|
5
5
|
natsClientToken: InjectionToken,
|
|
6
6
|
natsJetStreamToken: InjectionToken,
|
|
7
|
+
opts?: JetStreamOptions,
|
|
7
8
|
): FactoryProvider => ({
|
|
8
9
|
inject: [natsClientToken],
|
|
9
10
|
provide: natsJetStreamToken,
|
|
10
11
|
useFactory(client: NatsConnection): JetStreamClient {
|
|
11
|
-
return client.jetstream(
|
|
12
|
+
return client.jetstream({
|
|
13
|
+
domain: process.env.NATS_DEFAULT_JET_STREAM_DOMAIN!,
|
|
14
|
+
...opts,
|
|
15
|
+
});
|
|
12
16
|
},
|
|
13
17
|
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Constructor } from '@rsdk/common';
|
|
2
|
+
import type { JetStreamOptions } from 'nats';
|
|
3
|
+
|
|
4
|
+
import type { DefaultNatsConfig } from './client.config';
|
|
5
|
+
|
|
6
|
+
export interface ModuleOptions {
|
|
7
|
+
connectionName?: string;
|
|
8
|
+
configConstructor?: Constructor<DefaultNatsConfig>;
|
|
9
|
+
jetstreamOptions?: JetStreamOptions;
|
|
10
|
+
}
|
package/src/index.ts
CHANGED