@tstdl/base 0.71.68 → 0.71.70

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.
Files changed (62) hide show
  1. package/container/container.d.ts +1 -0
  2. package/container/container.js +65 -54
  3. package/container/container.js.map +1 -1
  4. package/container/decorators.d.ts +11 -8
  5. package/container/decorators.js +48 -69
  6. package/container/decorators.js.map +1 -1
  7. package/container/resolve-chain.js +4 -3
  8. package/container/resolve-chain.js.map +1 -1
  9. package/container/type-info.d.ts +1 -21
  10. package/container/type-info.js +0 -42
  11. package/container/type-info.js.map +1 -1
  12. package/container/utils.d.ts +1 -1
  13. package/container/utils.js +17 -28
  14. package/container/utils.js.map +1 -1
  15. package/css/theme/theme.service.js +3 -2
  16. package/css/theme/theme.service.js.map +1 -1
  17. package/database/mongo/mongo-entity-repository.js.map +1 -1
  18. package/examples/pdf/basic.js +2 -1
  19. package/examples/pdf/basic.js.map +1 -1
  20. package/examples/reflection/basic.js +4 -1
  21. package/examples/reflection/basic.js.map +1 -1
  22. package/http/client/adapters/undici-http-client.adapter.d.ts +1 -1
  23. package/http/client/adapters/undici-http-client.adapter.js +1 -1
  24. package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
  25. package/http/cookie-parser.js +2 -2
  26. package/http/cookie-parser.js.map +1 -1
  27. package/package.json +4 -4
  28. package/reflection/decorator-data.d.ts +1 -46
  29. package/reflection/decorator-data.js.map +1 -1
  30. package/reflection/decorators.d.ts +13 -11
  31. package/reflection/decorators.js +27 -18
  32. package/reflection/decorators.js.map +1 -1
  33. package/reflection/registry.d.ts +30 -14
  34. package/reflection/registry.js +23 -15
  35. package/reflection/registry.js.map +1 -1
  36. package/reflection/types.d.ts +88 -0
  37. package/reflection/types.js +3 -0
  38. package/reflection/types.js.map +1 -0
  39. package/reflection/utils.d.ts +21 -21
  40. package/reflection/utils.js +41 -50
  41. package/reflection/utils.js.map +1 -1
  42. package/schema/schemas/object.js +4 -3
  43. package/schema/schemas/object.js.map +1 -1
  44. package/search-index/elastic/search-index.js +1 -1
  45. package/search-index/elastic/search-index.js.map +1 -1
  46. package/serializer/serializer.js +5 -4
  47. package/serializer/serializer.js.map +1 -1
  48. package/templates/module.js +1 -0
  49. package/templates/module.js.map +1 -1
  50. package/templates/template.service.d.ts +2 -2
  51. package/templates/template.service.js +3 -3
  52. package/templates/template.service.js.map +1 -1
  53. package/types.d.ts +2 -2
  54. package/utils/helpers.js +11 -7
  55. package/utils/helpers.js.map +1 -1
  56. package/utils/object/lazy-property.js +1 -1
  57. package/utils/object/lazy-property.js.map +1 -1
  58. package/utils/object/merge.js +1 -1
  59. package/utils/object/merge.js.map +1 -1
  60. package/utils/object/object.d.ts +5 -1
  61. package/utils/object/object.js +22 -8
  62. package/utils/object/object.js.map +1 -1
@@ -4,6 +4,7 @@ import type { Injectable, InjectableArgument } from './interfaces';
4
4
  import type { Provider } from './provider';
5
5
  import type { InjectionToken } from './token';
6
6
  import type { ArgumentProvider, Mapper } from './types';
7
+ export declare const injectMetadataSymbol: unique symbol;
7
8
  /**
8
9
  * transient: a new instance will be created with each resolve
9
10
  * singleton: each resolve will return the same instance
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.container = exports.Container = void 0;
3
+ exports.container = exports.Container = exports.injectMetadataSymbol = void 0;
4
4
  const circular_buffer_1 = require("../data-structures/circular-buffer");
5
5
  const multi_key_map_1 = require("../data-structures/multi-key-map");
6
+ const reflection_1 = require("../reflection");
6
7
  const async_iterable_helpers_1 = require("../utils/async-iterable-helpers");
7
8
  const forward_ref_1 = require("../utils/object/forward-ref");
9
+ const object_1 = require("../utils/object/object");
8
10
  const type_guards_1 = require("../utils/type-guards");
9
11
  const rxjs_1 = require("rxjs");
10
12
  const interfaces_1 = require("./interfaces");
@@ -12,8 +14,8 @@ const provider_1 = require("./provider");
12
14
  const resolve_chain_1 = require("./resolve-chain");
13
15
  const resolve_error_1 = require("./resolve.error");
14
16
  const token_1 = require("./token");
15
- const type_info_1 = require("./type-info");
16
17
  const utils_1 = require("./utils");
18
+ exports.injectMetadataSymbol = Symbol('Inject metadata');
17
19
  class Container {
18
20
  constructor() {
19
21
  this.registrationMap = new Map();
@@ -31,8 +33,9 @@ class Container {
31
33
  * @param options registration options
32
34
  */
33
35
  register(token, provider, options = {}) {
34
- if ((0, provider_1.isClassProvider)(provider)) {
35
- if (!type_info_1.typeInfos.has(provider.useClass)) {
36
+ if ((0, provider_1.isClassProvider)(provider) && !(0, utils_1.isStubClass)(provider.useClass)) {
37
+ const injectable = reflection_1.reflectionRegistry.hasType(provider.useClass) && reflection_1.reflectionRegistry.getMetadata(provider.useClass).data.has(exports.injectMetadataSymbol);
38
+ if (!injectable) {
36
39
  throw new Error(`${provider.useClass.name} is not injectable`);
37
40
  }
38
41
  }
@@ -160,17 +163,20 @@ class Container {
160
163
  context.resolving.set([token, argumentIdentity], true);
161
164
  let instance;
162
165
  if ((0, provider_1.isClassProvider)(registration.provider)) {
163
- const typeInfo = type_info_1.typeInfos.get(registration.provider.useClass);
164
- if ((0, type_guards_1.isUndefined)(typeInfo)) {
165
- throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable`, chain);
166
+ const typeMetadata = reflection_1.reflectionRegistry.getMetadata(registration.provider.useClass);
167
+ if (!typeMetadata.data.has(exports.injectMetadataSymbol)) {
168
+ throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable.`, chain);
166
169
  }
167
- if (typeInfo.constructor[utils_1.isStubClass] == true) {
168
- throw new resolve_error_1.ResolveError(`no provider for ${(0, token_1.getTokenName)(token)} registered`, chain);
170
+ if ((0, utils_1.isStubClass)(typeMetadata.constructor)) {
171
+ throw new resolve_error_1.ResolveError(`No provider for ${(0, token_1.getTokenName)(token)} registered.`, chain);
169
172
  }
170
- const parameters = typeInfo.parameters.map((metadata) => this.resolveInjection(token, context, typeInfo, metadata, resolveArgument, chain));
171
- instance = new typeInfo.constructor(...parameters);
172
- for (const [property, metadata] of Object.entries(typeInfo.properties)) {
173
- instance[property] = this.resolveInjection(token, context, typeInfo, metadata, resolveArgument, chain);
173
+ const parameters = (typeMetadata.parameters ?? []).map((metadata) => this.resolveInjection(token, context, typeMetadata, metadata, resolveArgument, chain));
174
+ instance = new typeMetadata.constructor(...parameters);
175
+ for (const [property, metadata] of typeMetadata.properties) {
176
+ if (!metadata.data.has(exports.injectMetadataSymbol)) {
177
+ continue;
178
+ }
179
+ instance[property] = this.resolveInjection(token, context, typeMetadata, metadata, resolveArgument, chain);
174
180
  }
175
181
  }
176
182
  if ((0, provider_1.isValueProvider)(registration.provider)) {
@@ -190,7 +196,7 @@ class Container {
190
196
  instance = result;
191
197
  }
192
198
  catch (error) {
193
- throw new resolve_error_1.ResolveError('error in factory', chain, error);
199
+ throw new resolve_error_1.ResolveError('Error in factory.', chain, error);
194
200
  }
195
201
  }
196
202
  if (!(0, provider_1.isTokenProvider)(registration.provider)) {
@@ -260,18 +266,21 @@ class Container {
260
266
  context.resolving.set([token, argumentIdentity], true);
261
267
  let instance;
262
268
  if ((0, provider_1.isClassProvider)(registration.provider)) {
263
- const typeInfo = type_info_1.typeInfos.get(registration.provider.useClass);
264
- if ((0, type_guards_1.isUndefined)(typeInfo)) {
265
- throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable`, chain);
269
+ const typeMetadata = reflection_1.reflectionRegistry.getMetadata(registration.provider.useClass);
270
+ if (!typeMetadata.data.has(exports.injectMetadataSymbol)) {
271
+ throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable.`, chain);
266
272
  }
267
- if (typeInfo.constructor[utils_1.isStubClass] == true) {
268
- throw new resolve_error_1.ResolveError(`no provider for ${(0, token_1.getTokenName)(token)} registered`, chain);
273
+ if ((0, utils_1.isStubClass)(typeMetadata.constructor)) {
274
+ throw new resolve_error_1.ResolveError(`No provider for ${(0, token_1.getTokenName)(token)} registered.`, chain);
269
275
  }
270
- const boxedParameters = await (0, async_iterable_helpers_1.toArrayAsync)((0, async_iterable_helpers_1.mapAsync)(typeInfo.parameters, async (metadata) => this.resolveInjectionAsync(context, typeInfo, metadata, resolveArgument, chain)));
276
+ const boxedParameters = await (0, async_iterable_helpers_1.toArrayAsync)((0, async_iterable_helpers_1.mapAsync)(typeMetadata.parameters ?? [], async (metadata) => this.resolveInjectionAsync(context, typeMetadata, metadata, resolveArgument, chain)));
271
277
  const parameters = boxedParameters.map((box) => box.resolved);
272
- instance = new typeInfo.constructor(...parameters);
273
- for (const [property, metadata] of Object.entries(typeInfo.properties)) {
274
- instance[property] = (await this.resolveInjectionAsync(context, typeInfo, metadata, resolveArgument, chain)).resolved;
278
+ instance = new typeMetadata.constructor(...parameters);
279
+ for (const [property, metadata] of typeMetadata.properties) {
280
+ if (!metadata.data.has(exports.injectMetadataSymbol)) {
281
+ continue;
282
+ }
283
+ instance[property] = (await this.resolveInjectionAsync(context, typeMetadata, metadata, resolveArgument, chain)).resolved;
275
284
  }
276
285
  }
277
286
  if ((0, provider_1.isValueProvider)(registration.provider)) {
@@ -287,7 +296,7 @@ class Container {
287
296
  instance = await registration.provider.useFactory(resolveArgument, this.getResolveContext(context, chain));
288
297
  }
289
298
  catch (error) {
290
- throw new resolve_error_1.ResolveError('error in factory', chain, error);
299
+ throw new resolve_error_1.ResolveError('Error in factory.', chain, error);
291
300
  }
292
301
  }
293
302
  if (!(0, provider_1.isTokenProvider)(registration.provider)) {
@@ -317,64 +326,66 @@ class Container {
317
326
  }
318
327
  return instance;
319
328
  }
320
- resolveInjection(token, context, typeInfo, metadata, resolveArgument, chain) {
321
- const getChain = metadata.type == 'parameter'
322
- ? (injectToken) => chain.addParameter(typeInfo.constructor, metadata.parameterIndex, injectToken).addToken(injectToken)
323
- : (injectToken) => chain.addProperty(typeInfo.constructor, metadata.propertyKey, injectToken).addToken(injectToken);
324
- const injectToken = (metadata.injectToken ?? metadata.token);
325
- if ((0, type_guards_1.isDefined)(metadata.injectArgumentMapper) && (!this.hasRegistration(injectToken) || (0, type_guards_1.isDefined)(resolveArgument) || (0, type_guards_1.isUndefined)(injectToken))) {
326
- const mapped = metadata.injectArgumentMapper(resolveArgument);
329
+ resolveInjection(token, context, typeMetadata, metadata, resolveArgument, chain) {
330
+ const getChain = (metadata.metadataType == 'constructor-parameter')
331
+ ? (injectToken) => chain.addParameter(typeMetadata.constructor, metadata.index, injectToken).addToken(injectToken)
332
+ : (injectToken) => chain.addProperty(typeMetadata.constructor, metadata.key, injectToken).addToken(injectToken);
333
+ const injectMetadata = metadata.data.get(exports.injectMetadataSymbol) ?? {};
334
+ const injectToken = (injectMetadata.injectToken ?? metadata.type);
335
+ if ((0, type_guards_1.isDefined)(injectMetadata.injectArgumentMapper) && (!this.hasRegistration(injectToken) || (0, type_guards_1.isDefined)(resolveArgument) || (0, type_guards_1.isUndefined)(injectToken))) {
336
+ const mapped = injectMetadata.injectArgumentMapper(resolveArgument);
327
337
  if ((0, type_guards_1.isPromise)(mapped)) {
328
338
  throw new resolve_error_1.ResolveError(`cannot evaluate async argument mapper for token ${(0, token_1.getTokenName)(token)} in synchronous resolve, use resolveAsync instead`, getChain(injectToken));
329
339
  }
330
340
  return mapped;
331
341
  }
332
- const parameterResolveArgument = metadata.forwardArgumentMapper?.(resolveArgument) ?? metadata.resolveArgumentProvider?.(this.getResolveContext(context, getChain(injectToken)));
342
+ const parameterResolveArgument = injectMetadata.forwardArgumentMapper?.(resolveArgument) ?? injectMetadata.resolveArgumentProvider?.(this.getResolveContext(context, getChain(injectToken)));
333
343
  if ((0, type_guards_1.isPromise)(parameterResolveArgument)) {
334
344
  throw new resolve_error_1.ResolveError(`cannot evaluate async argument provider for token ${(0, token_1.getTokenName)(token)} in synchronous resolve, use resolveAsync instead`, getChain(injectToken));
335
345
  }
336
- if ((0, type_guards_1.isDefined)(metadata.forwardRefToken)) {
346
+ if ((0, type_guards_1.isDefined)(injectMetadata.forwardRefToken)) {
337
347
  const forwardRef = forward_ref_1.ForwardRef.create();
338
- const forwardRefToken = metadata.forwardRefToken;
348
+ const forwardRefToken = injectMetadata.forwardRefToken;
339
349
  context.forwardRefQueue.add(() => {
340
350
  const forwardToken = (0, type_guards_1.isFunction)(forwardRefToken) ? forwardRefToken() : forwardRefToken;
341
- if ((0, type_guards_1.isDefined)(metadata.mapper)) {
351
+ if ((0, type_guards_1.isDefined)(injectMetadata.mapper)) {
342
352
  throw new resolve_error_1.ResolveError('cannot use inject mapper with forwardRef', getChain(forwardToken));
343
353
  }
344
- const resolved = this._resolve(forwardToken, metadata.optional, parameterResolveArgument, context, getChain(forwardToken), false);
354
+ const resolved = this._resolve(forwardToken, injectMetadata.optional, parameterResolveArgument, context, getChain(forwardToken), false);
345
355
  forward_ref_1.ForwardRef.setRef(forwardRef, resolved);
346
356
  });
347
357
  context.forwardRefs.add(forwardRef);
348
358
  return forwardRef;
349
359
  }
350
- const resolved = this._resolve(injectToken, metadata.optional, parameterResolveArgument, context, getChain(injectToken), false);
351
- return (0, type_guards_1.isDefined)(metadata.mapper) ? metadata.mapper(resolved) : resolved;
360
+ const resolved = this._resolve(injectToken, injectMetadata.optional, parameterResolveArgument, context, getChain(injectToken), false);
361
+ return (0, type_guards_1.isDefined)(injectMetadata.mapper) ? injectMetadata.mapper(resolved) : resolved;
352
362
  }
353
- async resolveInjectionAsync(context, typeInfo, metadata, resolveArgument, chain) {
354
- const injectToken = (metadata.injectToken ?? metadata.token);
355
- if ((0, type_guards_1.isDefined)(metadata.injectArgumentMapper) && (!this.hasRegistration(injectToken) || (0, type_guards_1.isDefined)(resolveArgument) || (0, type_guards_1.isUndefined)(injectToken))) {
356
- return { resolved: metadata.injectArgumentMapper(resolveArgument) };
357
- }
358
- const getChain = metadata.type == 'parameter'
359
- ? (token) => chain.addParameter(typeInfo.constructor, metadata.parameterIndex, token).addToken(token)
360
- : (token) => chain.addProperty(typeInfo.constructor, metadata.propertyKey, token).addToken(token);
361
- const parameterResolveArgument = await (metadata.forwardArgumentMapper?.(resolveArgument) ?? metadata.resolveArgumentProvider?.(this.getResolveContext(context, getChain(injectToken))));
362
- if ((0, type_guards_1.isDefined)(metadata.forwardRefToken)) {
363
+ async resolveInjectionAsync(context, typeMetadata, metadata, resolveArgument, chain) {
364
+ const getChain = (metadata.metadataType == 'constructor-parameter')
365
+ ? (injectToken) => chain.addParameter(typeMetadata.constructor, metadata.index, injectToken).addToken(injectToken)
366
+ : (injectToken) => chain.addProperty(typeMetadata.constructor, metadata.key, injectToken).addToken(injectToken);
367
+ const injectMetadata = metadata.data.get(exports.injectMetadataSymbol) ?? {};
368
+ const injectToken = (injectMetadata.injectToken ?? metadata.type);
369
+ if ((0, type_guards_1.isDefined)(injectMetadata.injectArgumentMapper) && (!this.hasRegistration(injectToken) || (0, type_guards_1.isDefined)(resolveArgument) || (0, type_guards_1.isUndefined)(injectToken))) {
370
+ return { resolved: injectMetadata.injectArgumentMapper(resolveArgument) };
371
+ }
372
+ const parameterResolveArgument = await (injectMetadata.forwardArgumentMapper?.(resolveArgument) ?? injectMetadata.resolveArgumentProvider?.(this.getResolveContext(context, getChain(injectToken))));
373
+ if ((0, type_guards_1.isDefined)(injectMetadata.forwardRefToken)) {
363
374
  const forwardRef = forward_ref_1.ForwardRef.create();
364
- const forwardRefToken = metadata.forwardRefToken;
375
+ const forwardRefToken = injectMetadata.forwardRefToken;
365
376
  context.forwardRefQueue.add(async () => {
366
377
  const forwardToken = (0, type_guards_1.isFunction)(forwardRefToken) ? forwardRefToken() : forwardRefToken;
367
- if ((0, type_guards_1.isDefined)(metadata.mapper)) {
378
+ if ((0, type_guards_1.isDefined)(injectMetadata.mapper)) {
368
379
  throw new resolve_error_1.ResolveError('cannot use inject mapper with forwardRef', getChain(forwardToken));
369
380
  }
370
- const resolved = await this._resolveAsync(forwardToken, metadata.optional, parameterResolveArgument, context, getChain(forwardToken), false);
381
+ const resolved = await this._resolveAsync(forwardToken, injectMetadata.optional, parameterResolveArgument, context, getChain(forwardToken), false);
371
382
  forward_ref_1.ForwardRef.setRef(forwardRef, resolved);
372
383
  });
373
384
  context.forwardRefs.add(forwardRef);
374
385
  return { resolved: forwardRef };
375
386
  }
376
- const resolved = await this._resolveAsync(injectToken, metadata.optional, parameterResolveArgument, context, getChain(injectToken), false);
377
- return { resolved: (0, type_guards_1.isDefined)(metadata.mapper) ? metadata.mapper(resolved) : resolved };
387
+ const resolved = await this._resolveAsync(injectToken, injectMetadata.optional, parameterResolveArgument, context, getChain(injectToken), false);
388
+ return { resolved: (0, type_guards_1.isDefined)(injectMetadata.mapper) ? injectMetadata.mapper(resolved) : resolved };
378
389
  }
379
390
  getResolveContext(resolveContext, chain) {
380
391
  const context = {
@@ -405,7 +416,7 @@ function derefForwardRefs(context) {
405
416
  if (!(typeof resolution.instance == 'object')) {
406
417
  continue;
407
418
  }
408
- for (const [key, value] of Object.entries(resolution.instance)) {
419
+ for (const [key, value] of (0, object_1.objectEntries)(resolution.instance)) {
409
420
  if (!context.forwardRefs.has(value)) {
410
421
  continue;
411
422
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../source/container/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../source/container/container.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
+ import type { Decorator } from "../reflection/types";
1
2
  import type { Constructor, OneOrMany, Simplify, TypedExtract, TypedOmit } from "../types";
2
3
  import type { Lifecycle, RegistrationOptions } from './container';
3
4
  import type { Provider } from './provider';
4
5
  import type { InjectionToken } from './token';
5
6
  import type { ArgumentProvider, ForwardRefInjectionToken, Mapper } from './types';
7
+ declare type InjectDecorator = Decorator<'property' | 'accessor' | 'constructorParameter'>;
6
8
  export declare type InjectableOptions<T, A> = RegistrationOptions<T> & {
7
9
  /** aliases (tokens) for the class. Useful for example for circular dependencies when you can't use the class itself as a token */
8
10
  alias?: OneOrMany<InjectionToken>;
@@ -37,37 +39,38 @@ export declare function scoped<T = any, A = any>(lifecycle: Simplify<TypedExtrac
37
39
  * @param argument resolve argument
38
40
  * @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
39
41
  */
40
- export declare function inject<T, A>(token?: InjectionToken<T, A>, argument?: A, mapperOrKey?: Mapper<T> | keyof T): PropertyDecorator & ParameterDecorator;
42
+ export declare function inject<T, A>(token?: InjectionToken<T, A>, argument?: A, mapperOrKey?: Mapper<T> | keyof T): InjectDecorator;
41
43
  /**
42
44
  * sets the argument used for resolving the parameter
43
45
  * @param argument
44
46
  */
45
- export declare function resolveArg<T>(argument: T): PropertyDecorator & ParameterDecorator;
47
+ export declare function resolveArg<T>(argument: T): InjectDecorator;
46
48
  /**
47
49
  * sets the argument provider used for resolving the parameter
48
50
  * @param argumentProvider
49
51
  */
50
- export declare function resolveArgProvider<T>(argumentProvider: ArgumentProvider<T>): PropertyDecorator & ParameterDecorator;
52
+ export declare function resolveArgProvider<T>(argumentProvider: ArgumentProvider<T>): InjectDecorator;
51
53
  /**
52
54
  * injects the argument used for resolving the class instead of resolving the parameter
53
55
  * @param argument
54
56
  * @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
55
57
  */
56
- export declare function injectArg<T>(mapperOrKey?: Mapper<T> | keyof T): PropertyDecorator & ParameterDecorator;
58
+ export declare function injectArg<T>(mapperOrKey?: Mapper<T> | keyof T): InjectDecorator;
57
59
  /**
58
60
  * sets the argument used for resolving the decorated parameter to the the argument provided for parent resolve
59
61
  * @param mapper map the argument (for example to select a property instead of forwarding the whole object)
60
62
  */
61
- export declare function forwardArg(): PropertyDecorator & ParameterDecorator;
62
- export declare function forwardArg<T, U>(mapper: Mapper<T, U>): PropertyDecorator & ParameterDecorator;
63
+ export declare function forwardArg(): InjectDecorator;
64
+ export declare function forwardArg<T, U>(mapper: Mapper<T, U>): InjectDecorator;
63
65
  /**
64
66
  * marks the argument as optional
65
67
  * @param argument
66
68
  */
67
- export declare function optional(): PropertyDecorator & ParameterDecorator;
69
+ export declare function optional(): InjectDecorator;
68
70
  /**
69
71
  * resolve using ForwardRef to handle circular dependencies. Resolve logic derefs all ForwardRefs which are direct properties of resolved instances automatically
70
72
  * @param token token to resolve
71
73
  * @param argument resolve argument
72
74
  */
73
- export declare function forwardRef<T, A>(token: ForwardRefInjectionToken<T>, argument?: A): PropertyDecorator & ParameterDecorator;
75
+ export declare function forwardRef<T, A>(token: ForwardRefInjectionToken<T>, argument?: A): InjectDecorator;
76
+ export {};
@@ -1,21 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.forwardRef = exports.optional = exports.forwardArg = exports.injectArg = exports.resolveArgProvider = exports.resolveArg = exports.inject = exports.scoped = exports.singleton = exports.injectable = exports.replaceClass = void 0;
4
+ /* eslint-disable @typescript-eslint/ban-types */
5
+ const reflection_1 = require("../reflection");
4
6
  const array_1 = require("../utils/array");
5
- const reflection_1 = require("../utils/reflection");
6
7
  const type_guards_1 = require("../utils/type-guards");
7
8
  const container_1 = require("./container");
8
- const type_info_1 = require("./type-info");
9
9
  /**
10
10
  * Helper decorator to replace a class definition with an other
11
11
  * can be used for example to type external classes with the {@link Injectable} interface
12
12
  * @param constructor class to replace with
13
13
  */
14
14
  function replaceClass(constructor) {
15
- function replaceDecorator() {
16
- return constructor;
17
- }
18
- return replaceDecorator;
15
+ return (0, reflection_1.createClassDecorator)({ handler: () => constructor });
19
16
  }
20
17
  exports.replaceClass = replaceClass;
21
18
  /**
@@ -23,23 +20,20 @@ exports.replaceClass = replaceClass;
23
20
  * @param options registration options
24
21
  */
25
22
  function injectable(options = {}) {
26
- function injectableDecorator(constructor) {
27
- const { alias: aliases, provider, ...registrationOptions } = options;
28
- (0, type_info_1.buildTypeInfoIfNeeded)(constructor);
29
- const parameterTypes = (0, reflection_1.getParameterTypes)(constructor) ?? [];
30
- for (let i = 0; i < parameterTypes.length; i++) {
31
- const metadata = (0, type_info_1.getInjectMetadata)(constructor, undefined, i, true);
32
- metadata.token = parameterTypes[i];
33
- }
34
- const targetProvider = provider ?? { useClass: constructor };
35
- container_1.container.register(constructor, targetProvider, registrationOptions);
36
- if ((0, type_guards_1.isDefined)(aliases)) {
37
- for (const alias of (0, array_1.toArray)(aliases)) {
38
- container_1.container.register(alias, { useToken: constructor }, registrationOptions);
23
+ return (0, reflection_1.createClassDecorator)({
24
+ data: { [container_1.injectMetadataSymbol]: {} },
25
+ mergeData: true,
26
+ handler: (data) => {
27
+ const { alias: aliases, provider, ...registrationOptions } = options;
28
+ const targetProvider = provider ?? { useClass: data.constructor };
29
+ container_1.container.register(data.constructor, targetProvider, registrationOptions);
30
+ if ((0, type_guards_1.isDefined)(aliases)) {
31
+ for (const alias of (0, array_1.toArray)(aliases)) {
32
+ container_1.container.register(alias, { useToken: data.constructor }, registrationOptions);
33
+ }
39
34
  }
40
35
  }
41
- }
42
- return injectableDecorator;
36
+ });
43
37
  }
44
38
  exports.injectable = injectable;
45
39
  /**
@@ -65,22 +59,17 @@ exports.scoped = scoped;
65
59
  * @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
66
60
  */
67
61
  function inject(token, argument, mapperOrKey) {
68
- function injectDecorator(target, propertyKey, parameterIndex) {
69
- const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
70
- if (metadata.type == 'property') {
71
- metadata.token = (0, reflection_1.getDesignType)(target, propertyKey);
72
- }
73
- if ((0, type_guards_1.isDefined)(token)) {
74
- metadata.injectToken = token;
75
- }
76
- if ((0, type_guards_1.isDefined)(argument)) {
77
- metadata.resolveArgumentProvider = () => argument;
78
- }
79
- if ((0, type_guards_1.isDefined)(mapperOrKey)) {
80
- metadata.mapper = (0, type_guards_1.isFunction)(mapperOrKey) ? mapperOrKey : ((value) => value[mapperOrKey]);
81
- }
62
+ const injectMetadata = {};
63
+ if ((0, type_guards_1.isDefined)(token)) {
64
+ injectMetadata.injectToken = token;
65
+ }
66
+ if ((0, type_guards_1.isDefined)(argument)) {
67
+ injectMetadata.resolveArgumentProvider = () => argument;
82
68
  }
83
- return injectDecorator;
69
+ if ((0, type_guards_1.isDefined)(mapperOrKey)) {
70
+ injectMetadata.mapper = (0, type_guards_1.isFunction)(mapperOrKey) ? mapperOrKey : ((value) => value[mapperOrKey]);
71
+ }
72
+ return createInjectDecorator(injectMetadata);
84
73
  }
85
74
  exports.inject = inject;
86
75
  /**
@@ -88,11 +77,7 @@ exports.inject = inject;
88
77
  * @param argument
89
78
  */
90
79
  function resolveArg(argument) {
91
- function resolveArgDecorator(target, propertyKey, parameterIndex) {
92
- const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
93
- metadata.resolveArgumentProvider = () => argument;
94
- }
95
- return resolveArgDecorator;
80
+ return resolveArgProvider(() => argument);
96
81
  }
97
82
  exports.resolveArg = resolveArg;
98
83
  /**
@@ -100,11 +85,7 @@ exports.resolveArg = resolveArg;
100
85
  * @param argumentProvider
101
86
  */
102
87
  function resolveArgProvider(argumentProvider) {
103
- function resolveArgDecorator(target, propertyKey, parameterIndex) {
104
- const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
105
- metadata.resolveArgumentProvider = argumentProvider;
106
- }
107
- return resolveArgDecorator;
88
+ return createInjectDecorator({ resolveArgumentProvider: argumentProvider });
108
89
  }
109
90
  exports.resolveArgProvider = resolveArgProvider;
110
91
  /**
@@ -113,23 +94,17 @@ exports.resolveArgProvider = resolveArgProvider;
113
94
  * @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
114
95
  */
115
96
  function injectArg(mapperOrKey) {
116
- function injectArgDecorator(target, propertyKey, parameterIndex) {
117
- const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
118
- metadata.injectArgumentMapper = (0, type_guards_1.isFunction)(mapperOrKey)
97
+ return createInjectDecorator({
98
+ injectArgumentMapper: (0, type_guards_1.isFunction)(mapperOrKey)
119
99
  ? mapperOrKey
120
100
  : (0, type_guards_1.isDefined)(mapperOrKey)
121
101
  ? ((value) => value[mapperOrKey])
122
- : (value) => value;
123
- }
124
- return injectArgDecorator;
102
+ : ((value) => value)
103
+ });
125
104
  }
126
105
  exports.injectArg = injectArg;
127
106
  function forwardArg(mapper = (value) => value) {
128
- function forwardArgDecorator(target, propertyKey, parameterIndex) {
129
- const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
130
- metadata.forwardArgumentMapper = mapper;
131
- }
132
- return forwardArgDecorator;
107
+ return createInjectDecorator({ forwardArgumentMapper: mapper });
133
108
  }
134
109
  exports.forwardArg = forwardArg;
135
110
  /**
@@ -137,11 +112,7 @@ exports.forwardArg = forwardArg;
137
112
  * @param argument
138
113
  */
139
114
  function optional() {
140
- function optionalDecorator(target, propertyKey, parameterIndex) {
141
- const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
142
- metadata.optional = true;
143
- }
144
- return optionalDecorator;
115
+ return createInjectDecorator({ optional: true });
145
116
  }
146
117
  exports.optional = optional;
147
118
  /**
@@ -150,14 +121,22 @@ exports.optional = optional;
150
121
  * @param argument resolve argument
151
122
  */
152
123
  function forwardRef(token, argument) {
153
- function injectDecorator(target, propertyKey, parameterIndex) {
154
- const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
155
- metadata.forwardRefToken = token;
156
- if ((0, type_guards_1.isDefined)(argument)) {
157
- metadata.resolveArgumentProvider = () => argument;
158
- }
124
+ const injectMetadata = {
125
+ forwardRefToken: token
126
+ };
127
+ if ((0, type_guards_1.isDefined)(argument)) {
128
+ injectMetadata.resolveArgumentProvider = () => argument;
159
129
  }
160
- return injectDecorator;
130
+ return createInjectDecorator(injectMetadata);
161
131
  }
162
132
  exports.forwardRef = forwardRef;
133
+ function createInjectDecorator(metadata) {
134
+ return (0, reflection_1.createDecorator)({
135
+ property: true,
136
+ accessor: true,
137
+ constructorParameter: true,
138
+ data: { [container_1.injectMetadataSymbol]: metadata },
139
+ mergeData: true
140
+ });
141
+ }
163
142
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../source/container/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../source/container/decorators.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResolveChain = void 0;
4
+ const reflection_1 = require("../reflection");
5
+ const utils_1 = require("../utils");
4
6
  const token_1 = require("./token");
5
- const type_info_1 = require("./type-info");
6
7
  class ResolveChain {
7
8
  constructor(nodes) {
8
9
  this.nodes = nodes ?? [];
@@ -31,9 +32,9 @@ class ResolveChain {
31
32
  chainString += `\n -> ${tokenName}`;
32
33
  break;
33
34
  case 'parameter':
34
- const typeInfo = (0, type_info_1.getTypeInfo)(node.constructor);
35
+ const metadata = reflection_1.reflectionRegistry.getMetadata(node.constructor);
35
36
  const prefix = '_, '.repeat(node.index);
36
- const suffix = ', _'.repeat(typeInfo.parameters.length - node.index - 1);
37
+ const suffix = ', _'.repeat((0, utils_1.assertDefinedPass)(metadata.parameters, 'missing parameters metadata').length - node.index - 1);
37
38
  chainString += `(${prefix}${tokenName}${suffix})`;
38
39
  break;
39
40
  case 'property':