@jdevel/tnest 0.0.6 → 0.0.8
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 +54 -0
- package/dist/__tests__/tnest-module.spec.js +51 -0
- package/dist/__tests__/tnest-module.spec.js.map +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/typed-client-ref.d.ts +7 -0
- package/dist/client/typed-client-ref.js +11 -0
- package/dist/client/typed-client-ref.js.map +1 -0
- package/dist/contracts/__tests__/contract-types.spec.js.map +1 -1
- package/dist/contracts/utility-types.d.ts +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/module-options.d.ts +3 -0
- package/dist/tnest.module.d.ts +2 -0
- package/dist/tnest.module.js +33 -4
- package/dist/tnest.module.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -246,6 +246,58 @@ export class OrderService {
|
|
|
246
246
|
}
|
|
247
247
|
```
|
|
248
248
|
|
|
249
|
+
#### Injecting clients by type (no boilerplate, no `@Inject`)
|
|
250
|
+
|
|
251
|
+
The manual `factory.create(...)` wiring above is fine, but it means writing a
|
|
252
|
+
provider per client and decorating every injection with `@Inject(...)`. Instead,
|
|
253
|
+
mint a dedicated client class with `TypedClientRef` and let `TnestModule`
|
|
254
|
+
register it for you.
|
|
255
|
+
|
|
256
|
+
Declare one class per microservice (this doubles as the type **and** the DI token):
|
|
257
|
+
|
|
258
|
+
```ts
|
|
259
|
+
// users.client.ts
|
|
260
|
+
import { TypedClientRef } from '@jdevel/tnest';
|
|
261
|
+
import type { UserContracts } from './contracts/user.contracts';
|
|
262
|
+
|
|
263
|
+
export class UsersClient extends TypedClientRef<UserContracts>('USER_SERVICE') {}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Hand it to the module via `typedClients` — the underlying `ClientProxy` is wired
|
|
267
|
+
automatically, and the class is exported globally:
|
|
268
|
+
|
|
269
|
+
```ts
|
|
270
|
+
TnestModule.forRootAsync({
|
|
271
|
+
imports: [ConfigModule],
|
|
272
|
+
inject: [ConfigService],
|
|
273
|
+
// `clientNames` is derived from the typed clients' names, so it's optional here
|
|
274
|
+
typedClients: [UsersClient],
|
|
275
|
+
useFactory: (config: ConfigService) => ({
|
|
276
|
+
clients: [{ name: 'USER_SERVICE', options: /* ...transport options... */ }],
|
|
277
|
+
}),
|
|
278
|
+
});
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Now inject it by type anywhere — no provider, no `@Inject`:
|
|
282
|
+
|
|
283
|
+
```ts
|
|
284
|
+
@Injectable()
|
|
285
|
+
export class OrderService {
|
|
286
|
+
constructor(private readonly users: UsersClient) {}
|
|
287
|
+
|
|
288
|
+
async createOrder(userId: string) {
|
|
289
|
+
const user = await firstValueFrom(this.users.send('user.get', { id: userId }));
|
|
290
|
+
return { orderId: '123', user };
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
> Each `TypedClientRef(...)` call mints a **distinct runtime class**. This is what
|
|
296
|
+
> lets NestJS resolve different clients by type — `TypedClient<A>` and
|
|
297
|
+
> `TypedClient<B>` are identical at runtime once generics are erased, so a shared
|
|
298
|
+
> class could not be told apart. Import the client class with a regular `import`
|
|
299
|
+
> (not `import type`); it must survive to runtime to act as the injection token.
|
|
300
|
+
|
|
249
301
|
The compiler catches contract violations:
|
|
250
302
|
|
|
251
303
|
```ts
|
|
@@ -532,6 +584,8 @@ type Validated = ValidateRegistry<UserContracts>;
|
|
|
532
584
|
| `TnestModule` | Module | Dynamic module with `forRoot` / `forRootAsync` |
|
|
533
585
|
| `TypedClient` | Class | Type-safe wrapper around `ClientProxy` |
|
|
534
586
|
| `TypedClientFactory` | Service | Creates `TypedClient` instances |
|
|
587
|
+
| `TypedClientRef` | Function | Mints an injectable, type-resolvable client class |
|
|
588
|
+
| `TypedClientClass` | Type | A class minted by `TypedClientRef` |
|
|
535
589
|
| `TypedMessagePattern` | Decorator | Typed `@MessagePattern` for commands/queries |
|
|
536
590
|
| `TypedEventPattern` | Decorator | Typed `@EventPattern` for events |
|
|
537
591
|
| `ValidateContract` | Decorator | Opt-in runtime payload validation |
|
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const common_1 = require("@nestjs/common");
|
|
3
13
|
const testing_1 = require("@nestjs/testing");
|
|
4
14
|
const tnest_module_1 = require("../tnest.module");
|
|
5
15
|
const client_1 = require("../client");
|
|
6
16
|
const constants_1 = require("../constants");
|
|
17
|
+
class UsersClient extends (0, client_1.TypedClientRef)('USER_SERVICE') {
|
|
18
|
+
}
|
|
19
|
+
let UsersConsumer = class UsersConsumer {
|
|
20
|
+
constructor(users) {
|
|
21
|
+
this.users = users;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
UsersConsumer = __decorate([
|
|
25
|
+
(0, common_1.Injectable)(),
|
|
26
|
+
__metadata("design:paramtypes", [UsersClient])
|
|
27
|
+
], UsersConsumer);
|
|
7
28
|
describe('TnestModule', () => {
|
|
8
29
|
describe('forRoot()', () => {
|
|
9
30
|
it('provides TypedClientFactory', async () => {
|
|
@@ -33,6 +54,20 @@ describe('TnestModule', () => {
|
|
|
33
54
|
const client = module.get(token);
|
|
34
55
|
expect(client).toBeDefined();
|
|
35
56
|
});
|
|
57
|
+
it('auto-registers typed client classes injectable by type (no @Inject)', async () => {
|
|
58
|
+
const module = await testing_1.Test.createTestingModule({
|
|
59
|
+
imports: [
|
|
60
|
+
tnest_module_1.TnestModule.forRoot({
|
|
61
|
+
clients: [{ name: 'USER_SERVICE', options: { transport: 0 } }],
|
|
62
|
+
typedClients: [UsersClient],
|
|
63
|
+
}),
|
|
64
|
+
],
|
|
65
|
+
providers: [UsersConsumer],
|
|
66
|
+
}).compile();
|
|
67
|
+
const consumer = module.get(UsersConsumer);
|
|
68
|
+
expect(consumer.users).toBeInstanceOf(UsersClient);
|
|
69
|
+
expect(consumer.users).toBeInstanceOf(client_1.TypedClient);
|
|
70
|
+
});
|
|
36
71
|
});
|
|
37
72
|
describe('forRootAsync()', () => {
|
|
38
73
|
it('provides TypedClientFactory', async () => {
|
|
@@ -83,6 +118,22 @@ describe('TnestModule', () => {
|
|
|
83
118
|
],
|
|
84
119
|
}).compile()).rejects.toThrow(/client "MISSING_SERVICE" was declared in clientNames but not found/);
|
|
85
120
|
});
|
|
121
|
+
it('derives the underlying client name from typedClients (clientNames optional)', async () => {
|
|
122
|
+
const module = await testing_1.Test.createTestingModule({
|
|
123
|
+
imports: [
|
|
124
|
+
tnest_module_1.TnestModule.forRootAsync({
|
|
125
|
+
typedClients: [UsersClient],
|
|
126
|
+
useFactory: () => ({
|
|
127
|
+
clients: [{ name: 'USER_SERVICE', options: { transport: 0 } }],
|
|
128
|
+
}),
|
|
129
|
+
}),
|
|
130
|
+
],
|
|
131
|
+
providers: [UsersConsumer],
|
|
132
|
+
}).compile();
|
|
133
|
+
expect(module.get((0, constants_1.getClientToken)('USER_SERVICE'))).toBeDefined();
|
|
134
|
+
const consumer = module.get(UsersConsumer);
|
|
135
|
+
expect(consumer.users).toBeInstanceOf(UsersClient);
|
|
136
|
+
});
|
|
86
137
|
});
|
|
87
138
|
});
|
|
88
139
|
//# sourceMappingURL=tnest-module.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tnest-module.spec.js","sourceRoot":"","sources":["../../src/__tests__/tnest-module.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tnest-module.spec.js","sourceRoot":"","sources":["../../src/__tests__/tnest-module.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.d.ts
CHANGED
package/dist/client/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TypedClientFactory = exports.TypedClient = void 0;
|
|
3
|
+
exports.TypedClientRef = exports.TypedClientFactory = exports.TypedClient = void 0;
|
|
4
4
|
var typed_client_1 = require("./typed-client");
|
|
5
5
|
Object.defineProperty(exports, "TypedClient", { enumerable: true, get: function () { return typed_client_1.TypedClient; } });
|
|
6
6
|
var typed_client_factory_1 = require("./typed-client-factory");
|
|
7
7
|
Object.defineProperty(exports, "TypedClientFactory", { enumerable: true, get: function () { return typed_client_factory_1.TypedClientFactory; } });
|
|
8
|
+
var typed_client_ref_1 = require("./typed-client-ref");
|
|
9
|
+
Object.defineProperty(exports, "TypedClientRef", { enumerable: true, get: function () { return typed_client_ref_1.TypedClientRef; } });
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,uDAAoD;AAA3C,kHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Type } from '@nestjs/common';
|
|
2
|
+
import type { ContractRegistry } from '../contracts';
|
|
3
|
+
import { TypedClient } from './typed-client';
|
|
4
|
+
export interface TypedClientClass<TRegistry extends ContractRegistry> extends Type<TypedClient<TRegistry>> {
|
|
5
|
+
readonly clientName: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function TypedClientRef<TRegistry extends ContractRegistry>(clientName: string): TypedClientClass<TRegistry>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypedClientRef = TypedClientRef;
|
|
4
|
+
const typed_client_1 = require("./typed-client");
|
|
5
|
+
function TypedClientRef(clientName) {
|
|
6
|
+
class TypedClientRefHost extends typed_client_1.TypedClient {
|
|
7
|
+
}
|
|
8
|
+
TypedClientRefHost.clientName = clientName;
|
|
9
|
+
return TypedClientRefHost;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=typed-client-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-client-ref.js","sourceRoot":"","sources":["../../src/client/typed-client-ref.ts"],"names":[],"mappings":";;AA2CA,wCAQC;AAjDD,iDAA6C;AAyC7C,SAAgB,cAAc,CAC5B,UAAkB;IAElB,MAAM,kBAAmB,SAAQ,0BAAsB;;IACrC,6BAAU,GAAG,UAAU,CAAC;IAG1C,OAAO,kBAAiD,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-types.spec.js","sourceRoot":"","sources":["../../../src/contracts/__tests__/contract-types.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contract-types.spec.js","sourceRoot":"","sources":["../../../src/contracts/__tests__/contract-types.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { Event } from './event';
|
|
|
4
4
|
import type { Query } from './query';
|
|
5
5
|
export interface HttpResponse<T> {
|
|
6
6
|
status: HttpStatus;
|
|
7
|
-
data
|
|
7
|
+
data?: T;
|
|
8
8
|
}
|
|
9
9
|
export type AnyContract = Command<string, any, any> | Event<string, any> | Query<string, any, any>;
|
|
10
10
|
export type PatternOf<C extends AnyContract> = C['pattern'];
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export type { Command, Event, Query, AnyContract, ContractRegistry, ValidateRegi
|
|
|
4
4
|
export { command, event, query, defineRegistry } from './contracts';
|
|
5
5
|
export { TypedClient } from './client';
|
|
6
6
|
export { TypedClientFactory } from './client';
|
|
7
|
+
export { TypedClientRef } from './client';
|
|
8
|
+
export type { TypedClientClass } from './client';
|
|
7
9
|
export { TypedMessagePattern } from './handlers';
|
|
8
10
|
export { TypedEventPattern } from './handlers';
|
|
9
11
|
export type { TypedMessageHandler, TypedEventHandler } from './handlers';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TestContractModule = exports.MockTypedClient = exports.PAYLOAD_DESERIALIZER = exports.PAYLOAD_SERIALIZER = exports.DefaultPayloadSerializer = exports.CONTRACT_VALIDATOR = exports.ValidateContract = exports.TypedEventPattern = exports.TypedMessagePattern = exports.TypedClientFactory = exports.TypedClient = exports.defineRegistry = exports.query = exports.event = exports.command = exports.getClientToken = exports.TNEST_OPTIONS = exports.TnestModule = void 0;
|
|
3
|
+
exports.TestContractModule = exports.MockTypedClient = exports.PAYLOAD_DESERIALIZER = exports.PAYLOAD_SERIALIZER = exports.DefaultPayloadSerializer = exports.CONTRACT_VALIDATOR = exports.ValidateContract = exports.TypedEventPattern = exports.TypedMessagePattern = exports.TypedClientRef = exports.TypedClientFactory = exports.TypedClient = exports.defineRegistry = exports.query = exports.event = exports.command = exports.getClientToken = exports.TNEST_OPTIONS = exports.TnestModule = void 0;
|
|
4
4
|
var tnest_module_1 = require("./tnest.module");
|
|
5
5
|
Object.defineProperty(exports, "TnestModule", { enumerable: true, get: function () { return tnest_module_1.TnestModule; } });
|
|
6
6
|
var constants_1 = require("./constants");
|
|
@@ -15,6 +15,8 @@ var client_1 = require("./client");
|
|
|
15
15
|
Object.defineProperty(exports, "TypedClient", { enumerable: true, get: function () { return client_1.TypedClient; } });
|
|
16
16
|
var client_2 = require("./client");
|
|
17
17
|
Object.defineProperty(exports, "TypedClientFactory", { enumerable: true, get: function () { return client_2.TypedClientFactory; } });
|
|
18
|
+
var client_3 = require("./client");
|
|
19
|
+
Object.defineProperty(exports, "TypedClientRef", { enumerable: true, get: function () { return client_3.TypedClientRef; } });
|
|
18
20
|
var handlers_1 = require("./handlers");
|
|
19
21
|
Object.defineProperty(exports, "TypedMessagePattern", { enumerable: true, get: function () { return handlers_1.TypedMessagePattern; } });
|
|
20
22
|
var handlers_2 = require("./handlers");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAGpB,yCAA4D;AAAnD,0GAAA,aAAa,OAAA;AAAE,2GAAA,cAAc,OAAA;AAsBtC,yCAAoE;AAA3D,oGAAA,OAAO,OAAA;AAAE,kGAAA,KAAK,OAAA;AAAE,kGAAA,KAAK,OAAA;AAAE,2GAAA,cAAc,OAAA;AAG9C,mCAAuC;AAA9B,qGAAA,WAAW,OAAA;AACpB,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAGpB,yCAA4D;AAAnD,0GAAA,aAAa,OAAA;AAAE,2GAAA,cAAc,OAAA;AAsBtC,yCAAoE;AAA3D,oGAAA,OAAO,OAAA;AAAE,kGAAA,KAAK,OAAA;AAAE,kGAAA,KAAK,OAAA;AAAE,2GAAA,cAAc,OAAA;AAG9C,mCAAuC;AAA9B,qGAAA,WAAW,OAAA;AACpB,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AAIvB,uCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAC5B,uCAA+C;AAAtC,6GAAA,iBAAiB,OAAA;AAY1B,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,2CAAkD;AAAzC,gHAAA,kBAAkB,OAAA;AAI3B,iDAIyB;AAHvB,yHAAA,wBAAwB,OAAA;AACxB,mHAAA,kBAAkB,OAAA;AAClB,qHAAA,oBAAoB,OAAA;AAKtB,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AACxB,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import type { ModuleMetadata, Type } from '@nestjs/common';
|
|
2
2
|
import type { ClientOptions } from '@nestjs/microservices';
|
|
3
|
+
import type { TypedClientClass } from '../client';
|
|
3
4
|
export interface TnestClientDefinition {
|
|
4
5
|
name: string;
|
|
5
6
|
options: ClientOptions;
|
|
6
7
|
}
|
|
7
8
|
export interface TnestModuleOptions {
|
|
8
9
|
clients?: TnestClientDefinition[];
|
|
10
|
+
typedClients?: TypedClientClass<any>[];
|
|
9
11
|
}
|
|
10
12
|
export interface TnestOptionsFactory {
|
|
11
13
|
createTnestOptions(): TnestModuleOptions | Promise<TnestModuleOptions>;
|
|
12
14
|
}
|
|
13
15
|
export interface TnestModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
14
16
|
clientNames?: string[];
|
|
17
|
+
typedClients?: TypedClientClass<any>[];
|
|
15
18
|
useFactory?: (...args: any[]) => TnestModuleOptions | Promise<TnestModuleOptions>;
|
|
16
19
|
useClass?: Type<TnestOptionsFactory>;
|
|
17
20
|
useExisting?: Type<TnestOptionsFactory>;
|
package/dist/tnest.module.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { TnestModuleOptions, TnestModuleAsyncOptions } from './interfaces';
|
|
|
3
3
|
export declare class TnestModule {
|
|
4
4
|
static forRoot(options?: TnestModuleOptions): DynamicModule;
|
|
5
5
|
static forRootAsync(options: TnestModuleAsyncOptions): DynamicModule;
|
|
6
|
+
private static resolveClientNames;
|
|
7
|
+
private static createTypedClientProviders;
|
|
6
8
|
private static createAsyncClientProviders;
|
|
7
9
|
private static createClientProviders;
|
|
8
10
|
private static createAsyncProviders;
|
package/dist/tnest.module.js
CHANGED
|
@@ -15,6 +15,7 @@ const constants_1 = require("./constants");
|
|
|
15
15
|
let TnestModule = TnestModule_1 = class TnestModule {
|
|
16
16
|
static forRoot(options = {}) {
|
|
17
17
|
const clientProviders = TnestModule_1.createClientProviders(options);
|
|
18
|
+
const typedClientProviders = TnestModule_1.createTypedClientProviders(options.typedClients ?? []);
|
|
18
19
|
return {
|
|
19
20
|
module: TnestModule_1,
|
|
20
21
|
global: true,
|
|
@@ -22,21 +23,49 @@ let TnestModule = TnestModule_1 = class TnestModule {
|
|
|
22
23
|
{ provide: constants_1.TNEST_OPTIONS, useValue: options },
|
|
23
24
|
client_1.TypedClientFactory,
|
|
24
25
|
...clientProviders,
|
|
26
|
+
...typedClientProviders,
|
|
27
|
+
],
|
|
28
|
+
exports: [
|
|
29
|
+
client_1.TypedClientFactory,
|
|
30
|
+
...clientProviders.map((p) => p.provide),
|
|
31
|
+
...typedClientProviders.map((p) => p.provide),
|
|
25
32
|
],
|
|
26
|
-
exports: [client_1.TypedClientFactory, ...clientProviders.map((p) => p.provide)],
|
|
27
33
|
};
|
|
28
34
|
}
|
|
29
35
|
static forRootAsync(options) {
|
|
30
36
|
const asyncProviders = TnestModule_1.createAsyncProviders(options);
|
|
31
|
-
const
|
|
37
|
+
const typedClients = options.typedClients ?? [];
|
|
38
|
+
const clientNames = TnestModule_1.resolveClientNames(options.clientNames, typedClients);
|
|
39
|
+
const clientProviders = TnestModule_1.createAsyncClientProviders(clientNames);
|
|
40
|
+
const typedClientProviders = TnestModule_1.createTypedClientProviders(typedClients);
|
|
32
41
|
return {
|
|
33
42
|
module: TnestModule_1,
|
|
34
43
|
global: true,
|
|
35
44
|
imports: options.imports ?? [],
|
|
36
|
-
providers: [
|
|
37
|
-
|
|
45
|
+
providers: [
|
|
46
|
+
...asyncProviders,
|
|
47
|
+
client_1.TypedClientFactory,
|
|
48
|
+
...clientProviders,
|
|
49
|
+
...typedClientProviders,
|
|
50
|
+
],
|
|
51
|
+
exports: [
|
|
52
|
+
client_1.TypedClientFactory,
|
|
53
|
+
constants_1.TNEST_OPTIONS,
|
|
54
|
+
...clientProviders.map((p) => p.provide),
|
|
55
|
+
...typedClientProviders.map((p) => p.provide),
|
|
56
|
+
],
|
|
38
57
|
};
|
|
39
58
|
}
|
|
59
|
+
static resolveClientNames(clientNames, typedClients) {
|
|
60
|
+
return Array.from(new Set([...(clientNames ?? []), ...typedClients.map((c) => c.clientName)]));
|
|
61
|
+
}
|
|
62
|
+
static createTypedClientProviders(typedClients) {
|
|
63
|
+
return typedClients.map((ClientRef) => ({
|
|
64
|
+
provide: ClientRef,
|
|
65
|
+
useFactory: (proxy) => new ClientRef(proxy),
|
|
66
|
+
inject: [(0, constants_1.getClientToken)(ClientRef.clientName)],
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
40
69
|
static createAsyncClientProviders(clientNames) {
|
|
41
70
|
return clientNames.map((name) => ({
|
|
42
71
|
provide: (0, constants_1.getClientToken)(name),
|
package/dist/tnest.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tnest.module.js","sourceRoot":"","sources":["../src/tnest.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"tnest.module.js","sourceRoot":"","sources":["../src/tnest.module.ts"],"names":[],"mappings":"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"}
|