@zlink-systems/nestjs 0.29.1 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/providers.js CHANGED
@@ -6,9 +6,11 @@ exports.conditionalClientProviders = conditionalClientProviders;
6
6
  exports.conditionalClientProvidersForFactory = conditionalClientProvidersForFactory;
7
7
  exports.conditionalClientTokens = conditionalClientTokens;
8
8
  exports.createRuntimeHost = createRuntimeHost;
9
- exports.createNestHandlerInstance = createNestHandlerInstance;
10
- exports.validateNestConstructorDependencies = validateNestConstructorDependencies;
9
+ exports.nestHandlerFactories = nestHandlerFactories;
10
+ exports.registeredNestHandlerFactory = registeredNestHandlerFactory;
11
+ exports.prepareNestHandlerFactory = prepareNestHandlerFactory;
11
12
  exports.providerToken = providerToken;
13
+ const common_1 = require("@nestjs/common");
12
14
  const constants_1 = require("@nestjs/common/constants");
13
15
  const core_1 = require("@nestjs/core");
14
16
  const unknown_element_exception_1 = require("@nestjs/core/errors/exceptions/unknown-element.exception");
@@ -126,7 +128,9 @@ const CONDITIONAL_CLIENT_PROVIDER_SPECS = [
126
128
  isEnabled: (registration) => framework_loader_1.framework.hasActorManager(registration),
127
129
  create: async (registration, runtime, moduleRef, discovery) => {
128
130
  const host = requireRuntime(runtime);
129
- return framework_loader_1.framework.createIntegrationActorManager(registration, host, moduleRef === undefined ? undefined : createProviderResolver(moduleRef, discovery));
131
+ return framework_loader_1.framework.createIntegrationActorManager(registration, host, moduleRef === undefined
132
+ ? undefined
133
+ : createProviderResolver(moduleRef, discovery, registration));
130
134
  }
131
135
  },
132
136
  {
@@ -225,6 +229,18 @@ function hasLocationStores(registration) {
225
229
  return (registration.locations.useInMemoryStores || registration.locations.storeInstance !== undefined);
226
230
  }
227
231
  function createRuntimeHost(registration, moduleRef, discovery) {
232
+ const runtime = framework_loader_1.framework.createIntegrationRuntimeHost(registration, createProviderResolver(moduleRef, discovery, registration));
233
+ runtime.onModuleInit = async () => {
234
+ await runtime.start();
235
+ };
236
+ runtime.onModuleDestroy = async () => {
237
+ await runtime.shutdown();
238
+ };
239
+ runtime.onApplicationBootstrap = async () => { };
240
+ return runtime;
241
+ }
242
+ function createProviderResolver(moduleRef, discovery, registration) {
243
+ const factories = nestHandlerFactories(registration);
228
244
  const types = new Set([...registration.spotFactories, ...registration.filterTypes]);
229
245
  for (const node of registration.spotNodes.values()) {
230
246
  if (node.entrySpotType !== undefined)
@@ -238,6 +254,8 @@ function createRuntimeHost(registration, moduleRef, discovery) {
238
254
  for (const value of Object.values(node.instanceSpotFactoryRegistrations ?? {}))
239
255
  types.add(value.implementation);
240
256
  for (const handler of [
257
+ ...(node.routeSendHandlers ?? []),
258
+ ...(node.routeRequestHandlers ?? []),
241
259
  ...(node.entrySpotTimerHandlers ?? []),
242
260
  ...(node.entrySpotPacketHandlers ?? []),
243
261
  ...(node.entrySpotSubscriptionHandlers ?? []),
@@ -248,27 +266,34 @@ function createRuntimeHost(registration, moduleRef, discovery) {
248
266
  ...(node.spotSubscriptionHandlers ?? []),
249
267
  ...(node.spotActorSendHandlers ?? []),
250
268
  ...(node.spotActorRequestHandlers ?? [])
251
- ])
252
- types.add(handler.handlerType);
269
+ ]) {
270
+ const handlerType = handler.handlerType;
271
+ if (handlerType !== undefined)
272
+ types.add(handlerType);
273
+ }
274
+ for (const channel of Object.values(node.meshChannels ?? {})) {
275
+ for (const handler of [...(channel.sendHandlers ?? []), ...(channel.requestHandlers ?? [])]) {
276
+ const handlerType = handler.handlerType;
277
+ if (handlerType !== undefined)
278
+ types.add(handlerType);
279
+ }
280
+ }
281
+ }
282
+ function prepareHandler(type) {
283
+ return registeredNestHandlerFactory(factories, type, moduleRef).scopeFree;
253
284
  }
254
285
  for (const type of types)
255
- validateNestConstructorDependencies(moduleRef, type);
256
- const runtime = framework_loader_1.framework.createIntegrationRuntimeHost(registration, createProviderResolver(moduleRef, discovery));
257
- runtime.onModuleInit = async () => {
258
- await runtime.start();
259
- };
260
- runtime.onModuleDestroy = async () => {
261
- await runtime.shutdown();
262
- };
263
- runtime.onApplicationBootstrap = async () => { };
264
- return runtime;
265
- }
266
- function createProviderResolver(moduleRef, discovery) {
286
+ prepareHandler(type);
287
+ function createHandler(contextId, dependencies, type) {
288
+ const factory = factories.get(type);
289
+ if (factory === undefined)
290
+ throw new Error(`Handler creation was not prepared: ${type.name}`);
291
+ return factory(moduleRef, contextId, dependencies);
292
+ }
267
293
  const resolver = {
268
294
  get(type) {
269
- const discovered = findDiscoveredProvider(discovery, type)?.instance;
270
- if (discovered !== undefined) {
271
- return discovered;
295
+ if (discovery !== undefined) {
296
+ return findDiscoveredProvider(discovery, type)?.instance;
272
297
  }
273
298
  try {
274
299
  return moduleRef.get(type, { strict: false });
@@ -283,56 +308,68 @@ function createProviderResolver(moduleRef, discovery) {
283
308
  return await creationModuleRef.create(type);
284
309
  }
285
310
  };
286
- Object.defineProperty(resolver, Symbol.for('@zlink-systems/framework.handler-instance-scope-factory'), {
287
- value: {
288
- create(context) {
289
- const currentContextId = (0, dispatch_scope_1.currentNestDispatchContext)();
290
- const contextId = currentContextId ?? core_1.ContextIdFactory.create();
291
- if (context !== undefined && currentContextId === undefined) {
292
- moduleRef.registerRequestByContextId({ zlinkContext: context }, contextId);
293
- }
294
- const instances = new Map();
295
- const dependencies = new Map();
296
- const owned = [];
297
- let disposed = false;
298
- return {
299
- async resolve(type) {
300
- if (disposed) {
301
- throw new Error('Handler instance scope is already disposed.');
302
- }
303
- let instance = instances.get(type);
304
- if (instance === undefined) {
305
- instance = createNestHandlerInstance(moduleRef, contextId, dependencies, type).then(async (created) => {
311
+ let freeScopeStorage;
312
+ framework_loader_1.framework.registerIntegrationHandlerInstanceScopeFactory(resolver, {
313
+ prepare: prepareHandler,
314
+ create(context) {
315
+ const currentContextId = (0, dispatch_scope_1.currentNestDispatchContext)();
316
+ const contextId = currentContextId ?? core_1.ContextIdFactory.create();
317
+ if (context !== undefined && currentContextId === undefined) {
318
+ moduleRef.registerRequestByContextId({ zlinkContext: context }, contextId);
319
+ }
320
+ const storage = freeScopeStorage ?? new NestHandlerScopeStorage();
321
+ freeScopeStorage = storage.next;
322
+ storage.next = undefined;
323
+ const { instances, dependencies, owned } = storage;
324
+ let disposed = false;
325
+ return {
326
+ resolve(type) {
327
+ if (disposed) {
328
+ return Promise.reject(new Error('Handler instance scope is already disposed.'));
329
+ }
330
+ let instance = instances.get(type);
331
+ if (instance === undefined) {
332
+ try {
333
+ const finish = (created) => {
306
334
  if (disposed) {
307
- await framework_loader_1.framework.disposeIntegrationHandler(created);
308
- throw new Error('Handler instance scope was disposed during activation.');
335
+ return framework_loader_1.framework.disposeIntegrationHandler(created).then(() => {
336
+ throw new Error('Handler instance scope was disposed during activation.');
337
+ });
309
338
  }
310
339
  owned.push(created);
311
340
  return created;
312
- });
341
+ };
342
+ const created = createHandler(contextId, dependencies, type);
343
+ instance = isNestPromiseLike(created)
344
+ ? Promise.resolve(created).then(finish)
345
+ : Promise.resolve(finish(created));
313
346
  instances.set(type, instance);
314
347
  }
315
- return (await instance);
316
- },
317
- async dispose() {
318
- if (disposed)
319
- return;
320
- disposed = true;
321
- const pending = [...instances.values()];
322
- await Promise.allSettled(pending);
323
- try {
324
- await framework_loader_1.framework.disposeIntegrationHandlers(owned);
325
- }
326
- finally {
327
- owned.length = 0;
328
- instances.clear();
329
- dependencies.clear();
348
+ catch (error) {
349
+ return Promise.reject(error);
330
350
  }
331
351
  }
332
- };
333
- }
334
- },
335
- enumerable: false
352
+ return instance;
353
+ },
354
+ async dispose() {
355
+ if (disposed)
356
+ return;
357
+ disposed = true;
358
+ if (owned.length !== instances.size)
359
+ await Promise.allSettled(instances.values());
360
+ try {
361
+ await framework_loader_1.framework.disposeIntegrationHandlers(owned);
362
+ }
363
+ finally {
364
+ owned.length = 0;
365
+ instances.clear();
366
+ dependencies.clear();
367
+ storage.next = freeScopeStorage;
368
+ freeScopeStorage = storage;
369
+ }
370
+ }
371
+ };
372
+ }
336
373
  });
337
374
  framework_loader_1.framework.registerIntegrationHandlerFilterScope(resolver, (context, callback) => (0, dispatch_scope_1.runInNestDispatchScope)(moduleRef, context, async () => {
338
375
  const contextId = (0, dispatch_scope_1.currentNestDispatchContext)();
@@ -341,7 +378,7 @@ function createProviderResolver(moduleRef, discovery) {
341
378
  try {
342
379
  return await callback({
343
380
  async resolve(type) {
344
- const instance = await createNestHandlerInstance(moduleRef, contextId, dependencies, type);
381
+ const instance = await createHandler(contextId, dependencies, type);
345
382
  owned.push(instance);
346
383
  return instance;
347
384
  }
@@ -353,20 +390,86 @@ function createProviderResolver(moduleRef, discovery) {
353
390
  }));
354
391
  return resolver;
355
392
  }
356
- async function createNestHandlerInstance(moduleRef, contextId, dependencies, type) {
393
+ const NEST_HANDLER_FACTORIES = Symbol('Nest handler factories');
394
+ function nestHandlerFactories(registration, prepared) {
395
+ const owner = registration;
396
+ return (owner[NEST_HANDLER_FACTORIES] ??= prepared ?? new Map());
397
+ }
398
+ function registeredNestHandlerFactory(factories, type, moduleRef) {
399
+ let factory = factories.get(type);
400
+ if (factory === undefined) {
401
+ factory = prepareNestHandlerFactory(type, moduleRef);
402
+ factories.set(type, factory);
403
+ }
404
+ return factory;
405
+ }
406
+ class NestHandlerScopeStorage {
407
+ instances = new Map();
408
+ dependencies = new Map();
409
+ owned = [];
410
+ next;
411
+ }
412
+ function prepareNestHandlerFactory(type, moduleRef) {
357
413
  const { reflected, optional } = nestConstructorDependencies(type);
358
- const parameters = await Promise.all(reflected.map((token, index) => resolveNestHandlerDependency(moduleRef, contextId, dependencies, token, optional.has(index))));
359
- const instance = new type(...parameters);
360
- const properties = Reflect.getMetadata(constants_1.PROPERTY_DEPS_METADATA, type);
414
+ const parameters = reflected.map((token, index) => prepareNestDependency(nestDependencyToken(token), optional.has(index), moduleRef));
361
415
  const optionalProperties = new Set(Reflect.getMetadata(constants_1.OPTIONAL_PROPERTY_DEPS_METADATA, type) ?? []);
362
- for (const property of properties ?? []) {
363
- const dependency = await resolveNestHandlerDependency(moduleRef, contextId, dependencies, property.type, optionalProperties.has(property.key));
364
- if (dependency !== undefined) {
365
- instance[property.key] = dependency;
416
+ const properties = (Reflect.getMetadata(constants_1.PROPERTY_DEPS_METADATA, type) ?? []).map((property) => ({
417
+ key: property.key,
418
+ resolve: prepareNestDependency(nestDependencyToken(property.type), optionalProperties.has(property.key), moduleRef)
419
+ }));
420
+ const Constructor = type;
421
+ if (parameters.length === 0 && properties.length === 0) {
422
+ const activate = () => new Constructor();
423
+ return Object.assign(activate, { scopeFree: activate });
424
+ }
425
+ return (moduleRef, contextId, dependencies) => {
426
+ const create = (arguments_) => injectNestHandlerProperties(new Constructor(...arguments_), properties, 0, moduleRef, contextId, dependencies);
427
+ const arguments_ = parameters.map((resolve) => resolve(moduleRef, contextId, dependencies));
428
+ return arguments_.some(isNestPromiseLike)
429
+ ? Promise.all(arguments_).then(create)
430
+ : create(arguments_);
431
+ };
432
+ }
433
+ function prepareNestDependency(token, optional, moduleRef) {
434
+ let lookup = (ref, contextId) => ref.resolve(token, contextId, { strict: false });
435
+ if (moduleRef !== undefined) {
436
+ try {
437
+ if (moduleRef.introspect(token).scope ===
438
+ common_1.Scope.DEFAULT) {
439
+ lookup = (ref) => ref.get(token, { strict: false });
440
+ }
441
+ }
442
+ catch (error) {
443
+ if (!(error instanceof unknown_element_exception_1.UnknownElementException) || !optional)
444
+ throw error;
366
445
  }
367
446
  }
447
+ return (ref, contextId, dependencies) => resolveNestHandlerDependency(dependencies, token, optional, lookup, ref, contextId);
448
+ }
449
+ function injectNestHandlerProperties(instance, properties, index, moduleRef, contextId, dependencies) {
450
+ for (; index < properties.length; index++) {
451
+ const property = properties[index];
452
+ const dependency = property.resolve(moduleRef, contextId, dependencies);
453
+ if (isNestPromiseLike(dependency)) {
454
+ const next = index + 1;
455
+ return Promise.resolve(dependency).then((value) => {
456
+ assignNestHandlerProperty(instance, property.key, value);
457
+ return injectNestHandlerProperties(instance, properties, next, moduleRef, contextId, dependencies);
458
+ });
459
+ }
460
+ assignNestHandlerProperty(instance, property.key, dependency);
461
+ }
368
462
  return instance;
369
463
  }
464
+ function assignNestHandlerProperty(instance, key, dependency) {
465
+ if (dependency !== undefined)
466
+ instance[key] = dependency;
467
+ }
468
+ function isNestPromiseLike(value) {
469
+ return (value !== null &&
470
+ (typeof value === 'object' || typeof value === 'function') &&
471
+ typeof value.then === 'function');
472
+ }
370
473
  function nestConstructorDependencies(type) {
371
474
  const reflected = [
372
475
  ...(Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, type) ??
@@ -379,18 +482,6 @@ function nestConstructorDependencies(type) {
379
482
  const optional = new Set(Reflect.getMetadata(constants_1.OPTIONAL_DEPS_METADATA, type) ?? []);
380
483
  return { reflected, optional };
381
484
  }
382
- function validateNestConstructorDependencies(moduleRef, type) {
383
- const { reflected, optional } = nestConstructorDependencies(type);
384
- for (const [index, token] of reflected.entries()) {
385
- try {
386
- moduleRef.introspect(nestDependencyToken(token));
387
- }
388
- catch (error) {
389
- if (!(error instanceof unknown_element_exception_1.UnknownElementException) || !optional.has(index))
390
- throw error;
391
- }
392
- }
393
- }
394
485
  function nestDependencyToken(token) {
395
486
  const forwardReference = typeof token === 'object' && token !== null && 'forwardRef' in token
396
487
  ? token
@@ -399,25 +490,30 @@ function nestDependencyToken(token) {
399
490
  ? forwardReference.forwardRef()
400
491
  : token;
401
492
  }
402
- async function resolveNestHandlerDependency(moduleRef, contextId, dependencies, token, optional) {
403
- const resolvedToken = nestDependencyToken(token);
404
- let dependency = dependencies.get(resolvedToken);
405
- if (dependency === undefined) {
406
- dependency = moduleRef.resolve(resolvedToken, contextId, {
407
- strict: false
408
- });
409
- dependencies.set(resolvedToken, dependency);
410
- }
493
+ function resolveNestHandlerDependency(dependencies, token, optional, lookup, moduleRef, contextId) {
494
+ if (dependencies.has(token))
495
+ return dependencies.get(token);
411
496
  try {
412
- return await dependency;
497
+ const dependency = lookup(moduleRef, contextId);
498
+ const result = isNestPromiseLike(dependency)
499
+ ? Promise.resolve(dependency).then((value) => {
500
+ dependencies.set(token, value);
501
+ return value;
502
+ }, (error) => nestDependencyFailure(dependencies, token, optional, error))
503
+ : dependency;
504
+ dependencies.set(token, result);
505
+ return result;
413
506
  }
414
507
  catch (error) {
415
- dependencies.delete(resolvedToken);
416
- if (optional)
417
- return undefined;
418
- throw error;
508
+ return nestDependencyFailure(dependencies, token, optional, error);
419
509
  }
420
510
  }
511
+ function nestDependencyFailure(dependencies, token, optional, error) {
512
+ dependencies.delete(token);
513
+ if (optional)
514
+ return undefined;
515
+ throw error;
516
+ }
421
517
  function findDiscoveredProvider(discovery, type) {
422
518
  for (const wrapper of discovery?.getProviders() ?? []) {
423
519
  if (wrapper.token === type ||
@@ -432,7 +528,7 @@ function providerToken(provider) {
432
528
  return typeof provider === 'function' ? provider : provider.provide;
433
529
  }
434
530
  async function createSpotManager(registration, runtime, moduleRef, discovery) {
435
- return framework_loader_1.framework.createIntegrationSpotManager(registration, runtime, moduleRef === undefined ? undefined : createProviderResolver(moduleRef, discovery));
531
+ return framework_loader_1.framework.createIntegrationSpotManager(registration, runtime, moduleRef === undefined ? undefined : createProviderResolver(moduleRef, discovery, registration));
436
532
  }
437
533
  async function createSpotOutbound(_registration, runtime, _moduleRef, _discovery) {
438
534
  return framework_loader_1.framework.createIntegrationSpotOutbound(runtime);
@@ -1,6 +1,8 @@
1
1
  import type { DiscoveryService, ModuleRef } from '@nestjs/core';
2
2
  import type { ZLinkFrameworkRegistrationOptions } from './framework-integration-contracts';
3
3
  import { type ZLinkModuleOptions, type ZLinkNestModuleRegistrationOptions } from './contracts';
4
- export declare function createDiscoveredOptions(options: ZLinkNestModuleRegistrationOptions, discovery: DiscoveryService, moduleRef: ModuleRef): ZLinkFrameworkRegistrationOptions;
4
+ import { type NestHandlerFactories } from './providers';
5
+ export declare function createDiscoveredRegistration(options: ZLinkNestModuleRegistrationOptions, discovery: DiscoveryService, moduleRef: ModuleRef): import("./framework-integration-contracts").ZLinkFrameworkRegistration;
6
+ export declare function createDiscoveredOptions(options: ZLinkNestModuleRegistrationOptions, discovery: DiscoveryService, moduleRef: ModuleRef, factories?: NestHandlerFactories): ZLinkFrameworkRegistrationOptions;
5
7
  export declare function createRegistrationOptions(options: ZLinkNestModuleRegistrationOptions): ZLinkFrameworkRegistrationOptions;
6
8
  export declare function assertBuiltModuleOptions(options: ZLinkModuleOptions): ZLinkNestModuleRegistrationOptions;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDiscoveredRegistration = createDiscoveredRegistration;
3
4
  exports.createDiscoveredOptions = createDiscoveredOptions;
4
5
  exports.createRegistrationOptions = createRegistrationOptions;
5
6
  exports.assertBuiltModuleOptions = assertBuiltModuleOptions;
@@ -7,8 +8,15 @@ const contracts_1 = require("./contracts");
7
8
  const provider_discovery_1 = require("./provider-discovery");
8
9
  const handler_adapters_1 = require("./handler-adapters");
9
10
  const framework_loader_1 = require("./framework-loader");
11
+ const providers_1 = require("./providers");
10
12
  const spot_node_handler_registry_1 = require("./spot-node-handler-registry");
11
- function createDiscoveredOptions(options, discovery, moduleRef) {
13
+ function createDiscoveredRegistration(options, discovery, moduleRef) {
14
+ const factories = new Map();
15
+ const registration = framework_loader_1.framework.createFrameworkRegistration(createDiscoveredOptions(options, discovery, moduleRef, factories));
16
+ (0, providers_1.nestHandlerFactories)(registration, factories);
17
+ return registration;
18
+ }
19
+ function createDiscoveredOptions(options, discovery, moduleRef, factories = new Map()) {
12
20
  const registrationOptions = createRegistrationOptions(options);
13
21
  const channels = { ...(registrationOptions.channels ?? {}) };
14
22
  const useImplicitHandlers = options.implicitHandlerAutoRegistration !== false;
@@ -25,11 +33,11 @@ function createDiscoveredOptions(options, discovery, moduleRef) {
25
33
  const sessionProviderRefs = useImplicitHandlers
26
34
  ? (0, provider_discovery_1.discoverSessionProviderRefs)(discovery, moduleRef)
27
35
  : [];
28
- const spotNodes = createDiscoveredMeshChannelOptions(createDiscoveredSpotNodeOptions(registrationOptions.spotNodes, spotActorProviderRefs, spotProviderRefs, spotTimerProviderRefs), providerRefs, moduleRef);
36
+ const spotNodes = createDiscoveredMeshChannelOptions(createDiscoveredSpotNodeOptions(registrationOptions.spotNodes, spotActorProviderRefs, spotProviderRefs, spotTimerProviderRefs), providerRefs, moduleRef, factories);
29
37
  for (const [channelName, channel] of Object.entries(options.fanoutChannels ?? {})) {
30
38
  const existingChannel = channels[channelName];
31
- const publishHandlers = (0, handler_adapters_1.createDiscoveredPublishHandlers)(providerRefs, channel.handlerGroups, moduleRef);
32
- const manualPublishHandlers = (0, handler_adapters_1.createManualPublishHandlers)(channel.publishHandlerTypes, moduleRef);
39
+ const publishHandlers = (0, handler_adapters_1.createDiscoveredPublishHandlers)(providerRefs, channel.handlerGroups, moduleRef, factories);
40
+ const manualPublishHandlers = (0, handler_adapters_1.createManualPublishHandlers)(channel.publishHandlerTypes, moduleRef, factories);
33
41
  channels[channelName] = {
34
42
  ...existingChannel,
35
43
  publishHandlers: [
@@ -45,13 +53,13 @@ function createDiscoveredOptions(options, discovery, moduleRef) {
45
53
  ...existingChannel,
46
54
  requestHandlers: [
47
55
  ...(existingChannel.requestHandlers ?? []),
48
- ...(0, handler_adapters_1.createManualRequestHandlers)(channel.requestHandlerTypes, moduleRef),
49
- ...(0, handler_adapters_1.createDiscoveredRequestHandlers)(providerRefs, channel.handlerGroups, moduleRef)
56
+ ...(0, handler_adapters_1.createManualRequestHandlers)(channel.requestHandlerTypes, moduleRef, factories),
57
+ ...(0, handler_adapters_1.createDiscoveredRequestHandlers)(providerRefs, channel.handlerGroups, moduleRef, factories)
50
58
  ],
51
59
  sendHandlers: [
52
60
  ...(existingChannel.sendHandlers ?? []),
53
- ...(0, handler_adapters_1.createManualSendHandlers)(channel.sendHandlerTypes, moduleRef),
54
- ...(0, handler_adapters_1.createDiscoveredChannelSendHandlers)(providerRefs, channel.handlerGroups, moduleRef)
61
+ ...(0, handler_adapters_1.createManualSendHandlers)(channel.sendHandlerTypes, moduleRef, factories),
62
+ ...(0, handler_adapters_1.createDiscoveredChannelSendHandlers)(providerRefs, channel.handlerGroups, moduleRef, factories)
55
63
  ]
56
64
  };
57
65
  }
@@ -73,7 +81,7 @@ function attachDiscoveredSessionHandlers(streamNodes, handlerTypes) {
73
81
  return [name, configured];
74
82
  }));
75
83
  }
76
- function createDiscoveredMeshChannelOptions(value, providerRefs, moduleRef) {
84
+ function createDiscoveredMeshChannelOptions(value, providerRefs, moduleRef, factories) {
77
85
  if (value === undefined || Array.isArray(value)) {
78
86
  return value;
79
87
  }
@@ -88,12 +96,12 @@ function createDiscoveredMeshChannelOptions(value, providerRefs, moduleRef) {
88
96
  {
89
97
  ...channel,
90
98
  requestHandlers: [
91
- ...(0, handler_adapters_1.createManualRequestHandlers)(channel.requestHandlers, moduleRef),
92
- ...(0, handler_adapters_1.createDiscoveredRequestHandlers)(providerRefs, channel.handlerGroups, moduleRef)
99
+ ...(0, handler_adapters_1.createManualRequestHandlers)(channel.requestHandlers, moduleRef, factories),
100
+ ...(0, handler_adapters_1.createDiscoveredRequestHandlers)(providerRefs, channel.handlerGroups, moduleRef, factories)
93
101
  ],
94
102
  sendHandlers: [
95
- ...(0, handler_adapters_1.createManualSendHandlers)(channel.sendHandlers, moduleRef),
96
- ...(0, handler_adapters_1.createDiscoveredSendHandlers)(providerRefs, channel.handlerGroups, moduleRef)
103
+ ...(0, handler_adapters_1.createManualSendHandlers)(channel.sendHandlers, moduleRef, factories),
104
+ ...(0, handler_adapters_1.createDiscoveredSendHandlers)(providerRefs, channel.handlerGroups, moduleRef, factories)
97
105
  ]
98
106
  }
99
107
  ]))
@@ -264,6 +272,7 @@ function createRegistrationOptions(options) {
264
272
  routingId: channel.routingId,
265
273
  routingIdPrefix: channel.routingIdPrefix,
266
274
  noDrop: channel.noDrop,
275
+ sendTimeoutMs: channel.sendTimeoutMs,
267
276
  publishHandlers: channel.publishHandlers,
268
277
  publisher: channel.publisher,
269
278
  subscriber: channel.subscriber,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zlink-systems/nestjs",
3
- "version": "0.29.1",
3
+ "version": "0.30.1",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@nestjs/common": "^10.4.22",
24
- "@zlink-systems/framework": "0.29.1",
25
- "@zlink-systems/http-client": "0.29.1",
24
+ "@zlink-systems/framework": "0.30.1",
25
+ "@zlink-systems/http-client": "0.30.1",
26
26
  "reflect-metadata": "^0.2.2",
27
27
  "rxjs": "^7.8.2"
28
28
  },