@tsed/di 7.82.3 → 8.0.0-alpha.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.
Files changed (118) hide show
  1. package/lib/browser/di.umd.min.js +1 -1
  2. package/lib/browser/di.umd.min.js.map +1 -1
  3. package/lib/cjs/common/constants/constants.js +6 -4
  4. package/lib/cjs/common/constants/constants.js.map +1 -1
  5. package/lib/cjs/common/decorators/autoInjectable.js +23 -3
  6. package/lib/cjs/common/decorators/autoInjectable.js.map +1 -1
  7. package/lib/cjs/common/decorators/constant.js +30 -11
  8. package/lib/cjs/common/decorators/constant.js.map +1 -1
  9. package/lib/cjs/common/decorators/inject.js +64 -73
  10. package/lib/cjs/common/decorators/inject.js.map +1 -1
  11. package/lib/cjs/common/decorators/intercept.js +41 -12
  12. package/lib/cjs/common/decorators/intercept.js.map +1 -1
  13. package/lib/cjs/common/decorators/lazyInject.js +13 -13
  14. package/lib/cjs/common/decorators/lazyInject.js.map +1 -1
  15. package/lib/cjs/common/decorators/opts.js +1 -1
  16. package/lib/cjs/common/decorators/opts.js.map +1 -1
  17. package/lib/cjs/common/decorators/useOpts.js +2 -6
  18. package/lib/cjs/common/decorators/useOpts.js.map +1 -1
  19. package/lib/cjs/common/decorators/value.js +18 -11
  20. package/lib/cjs/common/decorators/value.js.map +1 -1
  21. package/lib/cjs/common/domain/Container.js +3 -3
  22. package/lib/cjs/common/domain/Container.js.map +1 -1
  23. package/lib/cjs/common/domain/Provider.js +1 -1
  24. package/lib/cjs/common/domain/Provider.js.map +1 -1
  25. package/lib/cjs/common/index.js +0 -2
  26. package/lib/cjs/common/index.js.map +1 -1
  27. package/lib/cjs/common/registries/GlobalProviders.js +6 -2
  28. package/lib/cjs/common/registries/GlobalProviders.js.map +1 -1
  29. package/lib/cjs/common/services/DIConfiguration.js.map +1 -1
  30. package/lib/cjs/common/services/InjectorService.js +48 -165
  31. package/lib/cjs/common/services/InjectorService.js.map +1 -1
  32. package/lib/cjs/node/decorators/injectContext.js +12 -3
  33. package/lib/cjs/node/decorators/injectContext.js.map +1 -1
  34. package/lib/cjs/node/services/DITest.js +8 -3
  35. package/lib/cjs/node/services/DITest.js.map +1 -1
  36. package/lib/esm/common/constants/constants.js +5 -3
  37. package/lib/esm/common/constants/constants.js.map +1 -1
  38. package/lib/esm/common/decorators/autoInjectable.js +23 -3
  39. package/lib/esm/common/decorators/autoInjectable.js.map +1 -1
  40. package/lib/esm/common/decorators/constant.js +28 -11
  41. package/lib/esm/common/decorators/constant.js.map +1 -1
  42. package/lib/esm/common/decorators/inject.js +63 -73
  43. package/lib/esm/common/decorators/inject.js.map +1 -1
  44. package/lib/esm/common/decorators/intercept.js +40 -13
  45. package/lib/esm/common/decorators/intercept.js.map +1 -1
  46. package/lib/esm/common/decorators/lazyInject.js +14 -14
  47. package/lib/esm/common/decorators/lazyInject.js.map +1 -1
  48. package/lib/esm/common/decorators/opts.js +2 -2
  49. package/lib/esm/common/decorators/opts.js.map +1 -1
  50. package/lib/esm/common/decorators/useOpts.js +3 -7
  51. package/lib/esm/common/decorators/useOpts.js.map +1 -1
  52. package/lib/esm/common/decorators/value.js +17 -11
  53. package/lib/esm/common/decorators/value.js.map +1 -1
  54. package/lib/esm/common/domain/Container.js +3 -3
  55. package/lib/esm/common/domain/Container.js.map +1 -1
  56. package/lib/esm/common/domain/Provider.js +1 -1
  57. package/lib/esm/common/domain/Provider.js.map +1 -1
  58. package/lib/esm/common/index.js +0 -2
  59. package/lib/esm/common/index.js.map +1 -1
  60. package/lib/esm/common/registries/GlobalProviders.js +6 -2
  61. package/lib/esm/common/registries/GlobalProviders.js.map +1 -1
  62. package/lib/esm/common/services/DIConfiguration.js.map +1 -1
  63. package/lib/esm/common/services/InjectorService.js +50 -167
  64. package/lib/esm/common/services/InjectorService.js.map +1 -1
  65. package/lib/esm/node/decorators/injectContext.js +13 -4
  66. package/lib/esm/node/decorators/injectContext.js.map +1 -1
  67. package/lib/esm/node/services/DITest.js +10 -5
  68. package/lib/esm/node/services/DITest.js.map +1 -1
  69. package/lib/types/common/constants/constants.d.ts +5 -3
  70. package/lib/types/common/decorators/constant.d.ts +4 -1
  71. package/lib/types/common/decorators/inject.d.ts +17 -4
  72. package/lib/types/common/decorators/intercept.d.ts +3 -0
  73. package/lib/types/common/decorators/value.d.ts +2 -1
  74. package/lib/types/common/domain/Container.d.ts +3 -3
  75. package/lib/types/common/domain/Provider.d.ts +6 -6
  76. package/lib/types/common/index.d.ts +0 -2
  77. package/lib/types/common/interfaces/ImportTokenProviderOpts.d.ts +2 -2
  78. package/lib/types/common/interfaces/InterceptorContext.d.ts +1 -1
  79. package/lib/types/common/interfaces/InvokeOptions.d.ts +8 -2
  80. package/lib/types/common/interfaces/ProviderOpts.d.ts +1 -1
  81. package/lib/types/common/interfaces/RegistrySettings.d.ts +2 -1
  82. package/lib/types/common/interfaces/ResolvedInvokeOptions.d.ts +1 -1
  83. package/lib/types/common/interfaces/TokenProvider.d.ts +2 -6
  84. package/lib/types/common/registries/GlobalProviders.d.ts +2 -2
  85. package/lib/types/common/services/InjectorService.d.ts +30 -54
  86. package/lib/types/node/services/DITest.d.ts +1 -1
  87. package/lib/types-esm/common/constants/constants.d.ts +5 -3
  88. package/lib/types-esm/common/decorators/constant.d.ts +4 -1
  89. package/lib/types-esm/common/decorators/inject.d.ts +17 -4
  90. package/lib/types-esm/common/decorators/intercept.d.ts +3 -0
  91. package/lib/types-esm/common/decorators/value.d.ts +2 -1
  92. package/lib/types-esm/common/domain/Container.d.ts +3 -3
  93. package/lib/types-esm/common/domain/Provider.d.ts +6 -6
  94. package/lib/types-esm/common/index.d.ts +0 -2
  95. package/lib/types-esm/common/interfaces/ImportTokenProviderOpts.d.ts +2 -2
  96. package/lib/types-esm/common/interfaces/InterceptorContext.d.ts +1 -1
  97. package/lib/types-esm/common/interfaces/InvokeOptions.d.ts +8 -2
  98. package/lib/types-esm/common/interfaces/ProviderOpts.d.ts +1 -1
  99. package/lib/types-esm/common/interfaces/RegistrySettings.d.ts +2 -1
  100. package/lib/types-esm/common/interfaces/ResolvedInvokeOptions.d.ts +1 -1
  101. package/lib/types-esm/common/interfaces/TokenProvider.d.ts +2 -6
  102. package/lib/types-esm/common/registries/GlobalProviders.d.ts +2 -2
  103. package/lib/types-esm/common/services/InjectorService.d.ts +30 -54
  104. package/lib/types-esm/node/services/DITest.d.ts +1 -1
  105. package/package.json +13 -9
  106. package/vitest.config.mts +5 -5
  107. package/lib/cjs/common/errors/UndefinedTokenError.js +0 -11
  108. package/lib/cjs/common/errors/UndefinedTokenError.js.map +0 -1
  109. package/lib/cjs/common/interfaces/InjectableProperties.js +0 -3
  110. package/lib/cjs/common/interfaces/InjectableProperties.js.map +0 -1
  111. package/lib/esm/common/errors/UndefinedTokenError.js +0 -7
  112. package/lib/esm/common/errors/UndefinedTokenError.js.map +0 -1
  113. package/lib/esm/common/interfaces/InjectableProperties.js +0 -2
  114. package/lib/esm/common/interfaces/InjectableProperties.js.map +0 -1
  115. package/lib/types/common/errors/UndefinedTokenError.d.ts +0 -4
  116. package/lib/types/common/interfaces/InjectableProperties.d.ts +0 -25
  117. package/lib/types-esm/common/errors/UndefinedTokenError.d.ts +0 -4
  118. package/lib/types-esm/common/interfaces/InjectableProperties.d.ts +0 -25
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DI_PARAM_OPTIONS = exports.DI_PARAMS = exports.INJECTABLE_PROP = void 0;
4
- exports.INJECTABLE_PROP = "DI:INJECTABLE_PROP";
5
- exports.DI_PARAMS = "DI:PARAMS";
6
- exports.DI_PARAM_OPTIONS = "DI:PARAM:OPTIONS";
3
+ exports.DI_INTERCEPTOR_OPTIONS = exports.DI_USE_PARAM_OPTIONS = exports.DI_USE_OPTIONS = exports.DI_INJECTABLE_PROPS = exports.DI_INVOKE_OPTIONS = void 0;
4
+ exports.DI_INVOKE_OPTIONS = Symbol("DI_INVOKE_OPTIONS");
5
+ exports.DI_INJECTABLE_PROPS = Symbol("DI_INJECTABLE_PROPS");
6
+ exports.DI_USE_OPTIONS = "DI_USE_OPTIONS";
7
+ exports.DI_USE_PARAM_OPTIONS = "DI_USE_PARAM_OPTIONS";
8
+ exports.DI_INTERCEPTOR_OPTIONS = "DI_INTERCEPTOR_OPTIONS";
7
9
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/common/constants/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,oBAAoB,CAAC;AACvC,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,gBAAgB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/common/constants/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAChD,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,sBAAsB,GAAG,wBAAwB,CAAC"}
@@ -1,15 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AutoInjectable = void 0;
4
+ const core_1 = require("@tsed/core");
4
5
  const LocalsContainer_js_1 = require("../domain/LocalsContainer.js");
5
6
  const InjectorService_js_1 = require("../services/InjectorService.js");
7
+ const getConstructorDependencies_js_1 = require("../utils/getConstructorDependencies.js");
8
+ function resolveAutoInjectableArgs(token, args) {
9
+ const locals = new LocalsContainer_js_1.LocalsContainer();
10
+ const injector = InjectorService_js_1.InjectorService.getInstance();
11
+ const deps = (0, getConstructorDependencies_js_1.getConstructorDependencies)(token);
12
+ const list = [];
13
+ const length = Math.max(deps.length, args.length);
14
+ for (let i = 0; i < length; i++) {
15
+ if (args[i] !== undefined) {
16
+ list.push(args[i]);
17
+ }
18
+ else {
19
+ const value = deps[i];
20
+ const instance = (0, core_1.isArray)(value)
21
+ ? injector.getMany(value[0], locals, { parent: token })
22
+ : injector.invoke(value, locals, { parent: token });
23
+ list.push(instance);
24
+ }
25
+ }
26
+ return list;
27
+ }
6
28
  function AutoInjectable() {
7
29
  return (constr) => {
8
30
  return class AutoInjectable extends constr {
9
31
  constructor(...args) {
10
- const locals = new LocalsContainer_js_1.LocalsContainer();
11
- super(...InjectorService_js_1.InjectorService.resolveAutoInjectableArgs(constr, locals, args));
12
- InjectorService_js_1.InjectorService.bind(this, locals);
32
+ super(...resolveAutoInjectableArgs(constr, args));
13
33
  }
14
34
  };
15
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"autoInjectable.js","sourceRoot":"","sources":["../../../../src/common/decorators/autoInjectable.ts"],"names":[],"mappings":";;;AAAA,qEAA6D;AAC7D,uEAA+D;AAE/D,SAAgB,cAAc;IAC5B,OAAO,CAAyD,MAAS,EAAK,EAAE;QAC9E,OAAO,MAAM,cAAe,SAAQ,MAAM;YACxC,YAAY,GAAG,IAAW;gBACxB,MAAM,MAAM,GAAG,IAAI,oCAAe,EAAE,CAAC;gBACrC,KAAK,CAAC,GAAG,oCAAe,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1E,oCAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC;SACc,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAVD,wCAUC"}
1
+ {"version":3,"file":"autoInjectable.js","sourceRoot":"","sources":["../../../../src/common/decorators/autoInjectable.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAC9C,qEAA6D;AAE7D,uEAA+D;AAC/D,0FAAkF;AAElF,SAAS,yBAAyB,CAAC,KAAW,EAAE,IAAe;IAC7D,MAAM,MAAM,GAAG,IAAI,oCAAe,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,oCAAe,CAAC,WAAW,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAoB,IAAA,0DAA0B,EAAC,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACpB;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,KAAK,CAAC;gBAC7B,CAAC,CAAC,QAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;gBACtD,CAAC,CAAC,QAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,CAAyD,MAAS,EAAK,EAAE;QAC9E,OAAO,MAAM,cAAe,SAAQ,MAAM;YACxC,YAAY,GAAG,IAAW;gBACxB,KAAK,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;SACc,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AARD,wCAQC"}
@@ -1,9 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Constant = void 0;
3
+ exports.Constant = exports.bindConstant = exports.constant = void 0;
4
4
  const core_1 = require("@tsed/core");
5
- const constants_js_1 = require("../constants/constants.js");
6
- const InjectablePropertyType_js_1 = require("../domain/InjectablePropertyType.js");
5
+ const InjectorService_js_1 = require("../services/InjectorService.js");
6
+ function constant(expression, defaultValue) {
7
+ return InjectorService_js_1.InjectorService.getInstance().settings.get(expression, defaultValue);
8
+ }
9
+ exports.constant = constant;
10
+ function bindConstant(target, propertyKey, expression, defaultValue) {
11
+ const symbol = Symbol();
12
+ (0, core_1.catchError)(() => Reflect.deleteProperty(target, propertyKey));
13
+ Reflect.defineProperty(target, propertyKey, {
14
+ get() {
15
+ if (this[symbol] !== undefined) {
16
+ return this[symbol];
17
+ }
18
+ const value = constant(expression, defaultValue);
19
+ this[symbol] = Object.freeze((0, core_1.deepClone)(value));
20
+ return this[symbol];
21
+ },
22
+ set(value) {
23
+ const bean = constant(expression, defaultValue) || this[symbol];
24
+ if (bean === undefined && value !== undefined) {
25
+ this[symbol] = value;
26
+ }
27
+ },
28
+ enumerable: true,
29
+ configurable: true
30
+ });
31
+ }
32
+ exports.bindConstant = bindConstant;
7
33
  /**
8
34
  * Return value from Configuration.
9
35
  *
@@ -41,14 +67,7 @@ const InjectablePropertyType_js_1 = require("../domain/InjectablePropertyType.js
41
67
  */
42
68
  function Constant(expression, defaultValue) {
43
69
  return (target, propertyKey) => {
44
- core_1.Store.from(target).merge(constants_js_1.INJECTABLE_PROP, {
45
- [propertyKey]: {
46
- bindingType: InjectablePropertyType_js_1.InjectablePropertyType.CONSTANT,
47
- propertyKey,
48
- expression,
49
- defaultValue
50
- }
51
- });
70
+ return bindConstant(target, propertyKey, expression, defaultValue);
52
71
  };
53
72
  }
54
73
  exports.Constant = Constant;
@@ -1 +1 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../../src/common/decorators/constant.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,4DAA0D;AAE1D,mFAA2E;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAgB,QAAQ,CAAC,UAAkB,EAAE,YAAkB;IAC7D,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;QAC1C,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,8BAAe,EAAE;YACxC,CAAC,WAAW,CAAC,EAAE;gBACb,WAAW,EAAE,kDAAsB,CAAC,QAAQ;gBAC5C,WAAW;gBACX,UAAU;gBACV,YAAY;aACb;SACsB,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAXD,4BAWC"}
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../../src/common/decorators/constant.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AACjD,uEAA+D;AAI/D,SAAgB,QAAQ,CAAO,UAAkB,EAAE,YAA+B;IAChF,OAAO,oCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC9E,CAAC;AAFD,4BAEC;AAED,SAAgB,YAAY,CAAC,MAAW,EAAE,WAA4B,EAAE,UAAkB,EAAE,YAAkB;IAC5G,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;QAC1C,GAAG;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;gBAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;aACrB;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC;YAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,KAAc;YAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhE,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;aACtB;QACH,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AA1BD,oCA0BC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAgB,QAAQ,CAAiB,UAAkB,EAAE,YAAmB;IAC9E,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,OAAO,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC;AAJD,4BAIC"}
@@ -1,91 +1,82 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Inject = exports.injectProperty = void 0;
3
+ exports.Inject = exports.injectMany = exports.inject = void 0;
4
4
  const core_1 = require("@tsed/core");
5
5
  const constants_js_1 = require("../constants/constants.js");
6
6
  const InvalidPropertyTokenError_js_1 = require("../errors/InvalidPropertyTokenError.js");
7
+ const InjectorService_js_1 = require("../services/InjectorService.js");
7
8
  const getConstructorDependencies_js_1 = require("../utils/getConstructorDependencies.js");
8
- function injectProperty(target, propertyKey, options) {
9
- core_1.Store.from(target).merge(constants_js_1.INJECTABLE_PROP, {
10
- [propertyKey]: {
11
- bindingType: core_1.DecoratorTypes.PROP,
12
- propertyKey,
13
- ...options
9
+ function inject(token, opts) {
10
+ return InjectorService_js_1.InjectorService.getInstance().invoke(token, opts?.locals || InjectorService_js_1.InjectorService.getLocals(), opts);
11
+ }
12
+ exports.inject = inject;
13
+ function injectMany(token, opts) {
14
+ return InjectorService_js_1.InjectorService.getInstance().getMany(token, opts?.locals || InjectorService_js_1.InjectorService.getLocals(), opts);
15
+ }
16
+ exports.injectMany = injectMany;
17
+ function setToken(token, { target, propertyKey, parameterIndex }) {
18
+ const paramTypes = (0, getConstructorDependencies_js_1.getConstructorDependencies)(target, propertyKey);
19
+ const type = paramTypes[parameterIndex];
20
+ paramTypes[parameterIndex] = type === Array ? [token] : token;
21
+ core_1.Metadata.setParamTypes(target, propertyKey, paramTypes);
22
+ (0, getConstructorDependencies_js_1.setConstructorDependencies)(target, paramTypes);
23
+ }
24
+ function getTokenType(token, target, propertyKey) {
25
+ const useType = token || core_1.Metadata.getType(target, propertyKey);
26
+ if (useType === Object) {
27
+ throw new InvalidPropertyTokenError_js_1.InvalidPropertyTokenError(target, String(propertyKey));
28
+ }
29
+ return useType;
30
+ }
31
+ function bindInjectableProperty(target, propertyKey, { token, transform = (o) => o, useOpts }) {
32
+ const symbol = Symbol();
33
+ if (!target[constants_js_1.DI_INJECTABLE_PROPS]) {
34
+ Reflect.defineProperty(target, constants_js_1.DI_INJECTABLE_PROPS, {
35
+ value: new Set(),
36
+ enumerable: false,
37
+ configurable: false
38
+ });
39
+ }
40
+ target[constants_js_1.DI_INJECTABLE_PROPS].add(propertyKey);
41
+ (0, core_1.catchError)(() => Reflect.deleteProperty(target, propertyKey));
42
+ Reflect.defineProperty(target, propertyKey, {
43
+ get() {
44
+ const useType = getTokenType(token, target, propertyKey);
45
+ const originalType = core_1.Metadata.getType(target, propertyKey);
46
+ const invokeOpts = {
47
+ rebuild: !!this[constants_js_1.DI_INVOKE_OPTIONS]?.rebuild,
48
+ locals: this[constants_js_1.DI_INVOKE_OPTIONS]?.locals,
49
+ useOpts: useOpts || core_1.Store.from(target, propertyKey).get(constants_js_1.DI_USE_OPTIONS)
50
+ };
51
+ if (this[symbol] === undefined) {
52
+ this[symbol] = originalType === Array ? injectMany(token, invokeOpts) : inject(useType, invokeOpts);
53
+ }
54
+ [].concat(this[symbol]).forEach((instance, index) => {
55
+ if ((0, core_1.isPromise)(this[symbol])) {
56
+ instance.then((result) => {
57
+ this[symbol][index] = result;
58
+ if (originalType !== Array) {
59
+ this[symbol] = result;
60
+ }
61
+ });
62
+ }
63
+ });
64
+ return transform(this[symbol], { self: this, target, propertyKey });
14
65
  }
15
66
  });
16
67
  }
17
- exports.injectProperty = injectProperty;
18
- /**
19
- * Inject a provider to another provider.
20
- *
21
- * Use this decorator to inject a custom provider on constructor parameter or property.
22
- *
23
- * ```typescript
24
- * @Injectable()
25
- * export class MyService {
26
- * @Inject(CONNECTION)
27
- * connection: CONNECTION;
28
- * }
29
- * ```
30
- *
31
- * @param token A token provider or token provider group
32
- * @param onGet Use the given name method to inject
33
- * @returns {Function}
34
- * @decorator
35
- */
36
- function Inject(token, onGet = (bean) => bean) {
37
- return (target, propertyKey, descriptor) => {
38
- const bindingType = (0, core_1.decoratorTypeOf)([target, propertyKey, descriptor]);
68
+ function Inject(token, opts = {}) {
69
+ opts = typeof opts === "function" ? { transform: opts } : opts;
70
+ return (target, propertyKey, index) => {
71
+ const bindingType = (0, core_1.decoratorTypeOf)([target, propertyKey, index]);
39
72
  switch (bindingType) {
40
73
  case core_1.DecoratorTypes.PARAM_CTOR:
41
74
  if (token) {
42
- const paramTypes = (0, getConstructorDependencies_js_1.getConstructorDependencies)(target, propertyKey);
43
- const type = paramTypes[descriptor];
44
- paramTypes[descriptor] = type === Array ? [token] : token;
45
- core_1.Metadata.setParamTypes(target, propertyKey, paramTypes);
46
- (0, getConstructorDependencies_js_1.setConstructorDependencies)(target, paramTypes);
75
+ setToken(token, { target, propertyKey, parameterIndex: index });
47
76
  }
48
77
  break;
49
78
  case core_1.DecoratorTypes.PROP:
50
- const useType = token || core_1.Metadata.getType(target, propertyKey);
51
- if (useType === Object) {
52
- throw new InvalidPropertyTokenError_js_1.InvalidPropertyTokenError(target, String(propertyKey));
53
- }
54
- injectProperty(target, String(propertyKey), {
55
- resolver(injector, locals, { options, ...invokeOptions }) {
56
- const originalType = core_1.Metadata.getType(target, propertyKey);
57
- locals.set(constants_js_1.DI_PARAM_OPTIONS, { ...options });
58
- if (originalType === Array) {
59
- let bean;
60
- if (!bean) {
61
- bean = injector.getMany(token, locals, invokeOptions);
62
- locals.delete(constants_js_1.DI_PARAM_OPTIONS);
63
- }
64
- bean.forEach((instance, index) => {
65
- if ((0, core_1.isPromise)(bean)) {
66
- instance.then((result) => {
67
- bean[index] = result;
68
- });
69
- }
70
- });
71
- return () => onGet(bean);
72
- }
73
- let bean;
74
- if (!bean) {
75
- bean = injector.invoke(useType, locals, invokeOptions);
76
- locals.delete(constants_js_1.DI_PARAM_OPTIONS);
77
- }
78
- if ((0, core_1.isPromise)(bean)) {
79
- bean.then((result) => {
80
- bean = result;
81
- });
82
- }
83
- return () => onGet(bean);
84
- }
85
- });
86
- break;
87
- default:
88
- throw new core_1.UnsupportedDecoratorType(Inject, [target, propertyKey, descriptor]);
79
+ bindInjectableProperty(target, propertyKey, { ...opts, token });
89
80
  }
90
81
  };
91
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../src/common/decorators/inject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../src/common/decorators/inject.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Intercept = void 0;
3
+ exports.Intercept = exports.bindIntercept = exports.getInterceptorOptions = void 0;
4
4
  const core_1 = require("@tsed/core");
5
5
  const constants_js_1 = require("../constants/constants.js");
6
- const InjectablePropertyType_js_1 = require("../domain/InjectablePropertyType.js");
6
+ const inject_js_1 = require("./inject.js");
7
+ function getInterceptorOptions(target, propertyKey) {
8
+ return core_1.Store.fromMethod(target, propertyKey).get(constants_js_1.DI_INTERCEPTOR_OPTIONS);
9
+ }
10
+ exports.getInterceptorOptions = getInterceptorOptions;
11
+ function bindIntercept(target, propertyKey, token, options) {
12
+ const klass = (0, core_1.classOf)(target);
13
+ const descriptor = Reflect.getOwnPropertyDescriptor(klass.prototype, propertyKey);
14
+ const originalMethod = descriptor.value;
15
+ const symbol = Symbol();
16
+ core_1.Store.fromMethod(klass, propertyKey).set(constants_js_1.DI_INTERCEPTOR_OPTIONS, options);
17
+ descriptor.value = function (...args) {
18
+ const next = (err) => {
19
+ if (!err) {
20
+ return originalMethod.apply(this, args);
21
+ }
22
+ throw err;
23
+ };
24
+ const context = {
25
+ target,
26
+ propertyKey,
27
+ args,
28
+ options,
29
+ next
30
+ };
31
+ const invokeOpts = {
32
+ rebuild: !!this[constants_js_1.DI_INVOKE_OPTIONS]?.rebuild,
33
+ locals: this[constants_js_1.DI_INVOKE_OPTIONS]?.locals
34
+ };
35
+ this[symbol] = this[symbol] || (0, inject_js_1.inject)(token, invokeOpts);
36
+ return this[symbol].intercept({
37
+ ...context,
38
+ options
39
+ }, next);
40
+ };
41
+ return descriptor;
42
+ }
43
+ exports.bindIntercept = bindIntercept;
7
44
  /**
8
45
  * Attaches interceptor to method call and executes the before and after methods
9
46
  *
@@ -13,22 +50,14 @@ const InjectablePropertyType_js_1 = require("../domain/InjectablePropertyType.js
13
50
  */
14
51
  function Intercept(interceptor, options) {
15
52
  return (...args) => {
16
- const [target, propertyKey, descriptor] = args;
53
+ const [target, propertyKey] = args;
17
54
  const type = (0, core_1.decoratorTypeOf)(args);
18
55
  switch (type) {
19
56
  case core_1.DecoratorTypes.CLASS:
20
57
  (0, core_1.decorateMethodsOf)(target, Intercept(interceptor, options));
21
58
  break;
22
59
  case core_1.DecoratorTypes.METHOD:
23
- core_1.Store.from(target).merge(constants_js_1.INJECTABLE_PROP, {
24
- [propertyKey]: {
25
- options,
26
- propertyKey,
27
- useType: interceptor,
28
- bindingType: InjectablePropertyType_js_1.InjectablePropertyType.INTERCEPTOR
29
- }
30
- });
31
- return descriptor;
60
+ return bindIntercept(target, propertyKey, interceptor, options);
32
61
  }
33
62
  };
34
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../../src/common/decorators/intercept.ts"],"names":[],"mappings":";;;AAAA,qCAAgH;AAChH,4DAA0D;AAC1D,mFAA2E;AAI3E;;;;;;GAMG;AACH,SAAgB,SAAS,CAA+B,WAAoB,EAAE,OAAa;IACzF,OAAO,CAAC,GAAG,IAAyB,EAAE,EAAE;QACtC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,IAAI,EAAE;YACZ,KAAK,qBAAc,CAAC,KAAK;gBACvB,IAAA,wBAAiB,EAAC,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,qBAAc,CAAC,MAAM;gBACxB,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,8BAAe,EAAE;oBACxC,CAAC,WAAW,CAAC,EAAE;wBACb,OAAO;wBACP,WAAW;wBACX,OAAO,EAAE,WAAW;wBACpB,WAAW,EAAE,kDAAsB,CAAC,WAAW;qBAChD;iBACsB,CAAC,CAAC;gBAE3B,OAAO,UAAU,CAAC;SACrB;IACH,CAAC,CAAC;AACJ,CAAC;AArBD,8BAqBC"}
1
+ {"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../../src/common/decorators/intercept.ts"],"names":[],"mappings":";;;AAAA,qCAAyH;AACzH,4DAAoF;AAKpF,2CAAmC;AAEnC,SAAgB,qBAAqB,CAAI,MAAiB,EAAE,WAA4B;IACtF,OAAO,YAAK,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,qCAAsB,CAAM,CAAC;AAChF,CAAC;AAFD,sDAEC;AAED,SAAgB,aAAa,CAAC,MAAW,EAAE,WAA4B,EAAE,KAAoB,EAAE,OAAgC;IAC7H,MAAM,KAAK,GAAG,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,UAAW,CAAC,KAAK,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,YAAK,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,qCAAsB,EAAE,OAAO,CAAC,CAAC;IAE1E,UAAW,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;QAC1C,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;YAC3B,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACzC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,OAAO,GAA4B;YACvC,MAAM;YACN,WAAW;YACX,IAAI;YACJ,OAAO;YACP,IAAI;SACL,CAAC;QAEF,MAAM,UAAU,GAA2B;YACzC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,gCAAiB,CAAC,EAAE,OAAO;YAC3C,MAAM,EAAE,IAAI,CAAC,gCAAiB,CAAC,EAAE,MAAM;SACxC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAA,kBAAM,EAAC,KAAK,EAAE,UAAU,CAAE,CAAC;QAE1D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,SAAU,CAC5B;YACE,GAAG,OAAO;YACV,OAAO;SACR,EACD,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AA1CD,sCA0CC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAA+B,WAAoB,EAAE,OAAa;IACzF,OAAO,CAAC,GAAG,IAAyB,EAAE,EAAE;QACtC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;QACnC,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,IAAI,EAAE;YACZ,KAAK,qBAAc,CAAC,KAAK;gBACvB,IAAA,wBAAiB,EAAC,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,qBAAc,CAAC,MAAM;gBACxB,OAAO,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;SACnE;IACH,CAAC,CAAC;AACJ,CAAC;AAZD,8BAYC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OptionalLazyInject = exports.LazyInject = void 0;
4
4
  const core_1 = require("@tsed/core");
5
- const inject_js_1 = require("./inject.js");
5
+ const InjectorService_js_1 = require("../services/InjectorService.js");
6
6
  /**
7
7
  * Lazy load a provider from his package and invoke only when the provider is used
8
8
  *
@@ -26,21 +26,21 @@ const inject_js_1 = require("./inject.js");
26
26
  function LazyInject(key, resolver, { optional = false, packageName = resolver.toString() } = {}) {
27
27
  return (target, propertyKey) => {
28
28
  let bean, token;
29
- (0, inject_js_1.injectProperty)(target, propertyKey, {
30
- resolver(injector) {
31
- return async () => {
29
+ (0, core_1.catchError)(() => Reflect.deleteProperty(target, propertyKey));
30
+ Reflect.defineProperty(target, propertyKey, {
31
+ async get() {
32
+ if (!token) {
33
+ const injector = InjectorService_js_1.InjectorService.getInstance();
34
+ const exports = await (0, core_1.importPackage)(packageName, resolver, optional);
35
+ token = exports[key];
32
36
  if (!token) {
33
- const exports = await (0, core_1.importPackage)(packageName, resolver, optional);
34
- token = exports[key];
35
- if (!token) {
36
- if (!optional) {
37
- throw new Error(`Unable to lazy load the "${key}". The token isn\'t a valid token provider.`);
38
- }
37
+ if (!optional) {
38
+ throw new Error(`Unable to lazy load the "${key}". The token isn\'t a valid token provider.`);
39
39
  }
40
- bean = token ? await injector.lazyInvoke(token) : {};
41
40
  }
42
- return bean;
43
- };
41
+ bean = token ? await injector.lazyInvoke(token) : {};
42
+ }
43
+ return bean;
44
44
  }
45
45
  });
46
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lazyInject.js","sourceRoot":"","sources":["../../../../src/common/decorators/lazyInject.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,2CAA2C;AAE3C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,UAAU,CACxB,GAAW,EACX,QAAmB,EACnB,EAAC,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAgD,EAAE;IAEtG,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAc,EAAE;QACtD,IAAI,IAAS,EAAE,KAAU,CAAC;QAC1B,IAAA,0BAAc,EAAC,MAAM,EAAE,WAAW,EAAE;YAClC,QAAQ,CAAC,QAAQ;gBACf,OAAO,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC,KAAK,EAAE;wBACV,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAa,EAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBACrE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBAErB,IAAI,CAAC,KAAK,EAAE;4BACV,IAAI,CAAC,QAAQ,EAAE;gCACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,6CAA6C,CAAC,CAAC;6BAC/F;yBACF;wBAED,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtD;oBAED,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AA5BD,gCA4BC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,kBAAkB,CAAC,GAAW,EAAE,QAAmB;IACjE,OAAQ,UAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,gDAEC"}
1
+ {"version":3,"file":"lazyInject.js","sourceRoot":"","sources":["../../../../src/common/decorators/lazyInject.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AACrD,uEAA+D;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,UAAU,CACxB,GAAW,EACX,QAAmB,EACnB,EAAC,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAgD,EAAE;IAEtG,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAc,EAAE;QAC/D,IAAI,IAAS,EAAE,KAAU,CAAC;QAE1B,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YAC1C,KAAK,CAAC,GAAG;gBACP,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,QAAQ,GAAG,oCAAe,CAAC,WAAW,EAAE,CAAC;oBAC/C,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAa,EAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACrE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,KAAK,EAAE;wBACV,IAAI,CAAC,QAAQ,EAAE;4BACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,6CAA6C,CAAC,CAAC;yBAC/F;qBACF;oBAED,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AA5BD,gCA4BC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,kBAAkB,CAAC,GAAW,EAAE,QAAmB;IACjE,OAAQ,UAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,gDAEC"}
@@ -48,7 +48,7 @@ const scope_js_1 = require("./scope.js");
48
48
  */
49
49
  function Opts(target, propertyKey, index) {
50
50
  (0, scope_js_1.Scope)(ProviderScope_js_1.ProviderScope.INSTANCE)((0, core_1.classOf)(target));
51
- (0, inject_js_1.Inject)(constants_js_1.DI_PARAM_OPTIONS)(target, propertyKey, index);
51
+ (0, inject_js_1.Inject)(constants_js_1.DI_USE_PARAM_OPTIONS)(target, propertyKey, index);
52
52
  }
53
53
  exports.Opts = Opts;
54
54
  //# sourceMappingURL=opts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opts.js","sourceRoot":"","sources":["../../../../src/common/decorators/opts.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AACnC,4DAA2D;AAC3D,iEAAyD;AACzD,2CAAmC;AACnC,yCAAiC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,SAAgB,IAAI,CAAC,MAAW,EAAE,WAAwC,EAAE,KAAa;IACvF,IAAA,gBAAK,EAAC,gCAAa,CAAC,QAAQ,CAAC,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAA,kBAAM,EAAC,+BAAgB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAHD,oBAGC"}
1
+ {"version":3,"file":"opts.js","sourceRoot":"","sources":["../../../../src/common/decorators/opts.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AACnC,4DAA+D;AAC/D,iEAAyD;AACzD,2CAAmC;AACnC,yCAAiC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,SAAgB,IAAI,CAAC,MAAW,EAAE,WAAwC,EAAE,KAAa;IACvF,IAAA,gBAAK,EAAC,gCAAa,CAAC,QAAQ,CAAC,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAA,kBAAM,EAAC,mCAAoB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAHD,oBAGC"}
@@ -47,14 +47,10 @@ function UseOpts(options) {
47
47
  const bindingType = (0, core_1.decoratorTypeOf)([target, propertyKey, index]);
48
48
  switch (bindingType) {
49
49
  case core_1.DecoratorTypes.PARAM_CTOR:
50
- core_1.Store.from(target).merge(`${constants_js_1.DI_PARAM_OPTIONS}:${index}`, options);
50
+ core_1.Store.from(target).merge(`${constants_js_1.DI_USE_PARAM_OPTIONS}:${index}`, options);
51
51
  break;
52
52
  case core_1.DecoratorTypes.PROP:
53
- core_1.Store.from(target).merge(constants_js_1.INJECTABLE_PROP, {
54
- [propertyKey]: {
55
- options
56
- }
57
- });
53
+ core_1.Store.from(target, propertyKey).set(constants_js_1.DI_USE_OPTIONS, options);
58
54
  break;
59
55
  default:
60
56
  throw new core_1.UnsupportedDecoratorType(UseOpts, [target, propertyKey, index]);
@@ -1 +1 @@
1
- {"version":3,"file":"useOpts.js","sourceRoot":"","sources":["../../../../src/common/decorators/useOpts.ts"],"names":[],"mappings":";;;AAAA,qCAA4F;AAC5F,4DAA4E;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,SAAgB,OAAO,CAAC,OAA6B;IACnD,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,KAAc,EAAO,EAAE;QAC3E,MAAM,WAAW,GAAG,IAAA,sBAAe,EAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAElE,QAAQ,WAAW,EAAE;YACnB,KAAK,qBAAc,CAAC,UAAU;gBAC5B,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,+BAAgB,IAAI,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;gBAClE,MAAM;YAER,KAAK,qBAAc,CAAC,IAAI;gBACtB,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,8BAAe,EAAE;oBACxC,CAAC,WAAqB,CAAC,EAAE;wBACvB,OAAO;qBACR;iBACF,CAAC,CAAC;gBACH,MAAM;YAER;gBACE,MAAM,IAAI,+BAAwB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SAC7E;IACH,CAAC,CAAC;AACJ,CAAC;AArBD,0BAqBC"}
1
+ {"version":3,"file":"useOpts.js","sourceRoot":"","sources":["../../../../src/common/decorators/useOpts.ts"],"names":[],"mappings":";;;AAAA,qCAA4F;AAC5F,4DAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,SAAgB,OAAO,CAAC,OAA6B;IACnD,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,KAAc,EAAO,EAAE;QAC3E,MAAM,WAAW,GAAG,IAAA,sBAAe,EAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAElE,QAAQ,WAAW,EAAE;YACnB,KAAK,qBAAc,CAAC,UAAU;gBAC5B,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,mCAAoB,IAAI,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;gBACtE,MAAM;YAER,KAAK,qBAAc,CAAC,IAAI;gBACtB,YAAK,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,6BAAc,EAAE,OAAO,CAAC,CAAC;gBAC7D,MAAM;YAER;gBACE,MAAM,IAAI,+BAAwB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SAC7E;IACH,CAAC,CAAC;AACJ,CAAC;AAjBD,0BAiBC"}
@@ -1,9 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Value = void 0;
3
+ exports.Value = exports.bindValue = void 0;
4
4
  const core_1 = require("@tsed/core");
5
- const constants_js_1 = require("../constants/constants.js");
6
- const InjectablePropertyType_js_1 = require("../domain/InjectablePropertyType.js");
5
+ const InjectorService_js_1 = require("../services/InjectorService.js");
6
+ function bindValue(target, propertyKey, expression, defaultValue) {
7
+ const descriptor = {
8
+ get() {
9
+ return InjectorService_js_1.InjectorService.getInstance().settings.get(expression, defaultValue);
10
+ },
11
+ set(value) {
12
+ InjectorService_js_1.InjectorService.getInstance().settings.set(expression, value);
13
+ },
14
+ enumerable: true,
15
+ configurable: true
16
+ };
17
+ (0, core_1.catchError)(() => Reflect.deleteProperty(target, propertyKey));
18
+ (0, core_1.catchError)(() => Reflect.defineProperty(target, propertyKey, descriptor));
19
+ }
20
+ exports.bindValue = bindValue;
7
21
  /**
8
22
  * Return value from Configuration.
9
23
  *
@@ -41,14 +55,7 @@ const InjectablePropertyType_js_1 = require("../domain/InjectablePropertyType.js
41
55
  */
42
56
  function Value(expression, defaultValue) {
43
57
  return (target, propertyKey) => {
44
- core_1.Store.from(target).merge(constants_js_1.INJECTABLE_PROP, {
45
- [propertyKey]: {
46
- bindingType: InjectablePropertyType_js_1.InjectablePropertyType.VALUE,
47
- propertyKey,
48
- expression,
49
- defaultValue
50
- }
51
- });
58
+ return bindValue(target, propertyKey, expression, defaultValue);
52
59
  };
53
60
  }
54
61
  exports.Value = Value;
@@ -1 +1 @@
1
- {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../src/common/decorators/value.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,4DAA0D;AAE1D,mFAA2E;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAgB,KAAK,CAAC,UAAe,EAAE,YAAkB;IACvD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;QAC1C,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,8BAAe,EAAE;YACxC,CAAC,WAAW,CAAC,EAAE;gBACb,WAAW,EAAE,kDAAsB,CAAC,KAAK;gBACzC,WAAW;gBACX,UAAU;gBACV,YAAY;aACb;SACsB,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAXD,sBAWC"}
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../src/common/decorators/value.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AACtC,uEAA+D;AAE/D,SAAgB,SAAS,CAAC,MAAW,EAAE,WAA4B,EAAE,UAAkB,EAAE,YAAkB;IACzG,MAAM,UAAU,GAAG;QACjB,GAAG;YACD,OAAO,oCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC9E,CAAC;QACD,GAAG,CAAC,KAAc;YAChB,oCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACnB,CAAC;IAEF,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9D,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAC5E,CAAC;AAdD,8BAcC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAgB,KAAK,CAAC,UAAkB,EAAE,YAAsB;IAC9D,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,OAAO,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC,CAAC;AACJ,CAAC;AAJD,sBAIC"}
@@ -48,13 +48,13 @@ class Container extends Map {
48
48
  /**
49
49
  * Get all providers registered in the injector container.
50
50
  *
51
- * @param {ProviderType} type Filter the list by the given ProviderType.
51
+ * @param type Filter the list by the given ProviderType.
52
52
  * @returns {[TokenProvider , Provider<any>][]}
53
53
  */
54
54
  getProviders(type) {
55
- const types = [].concat(type);
55
+ const types = [].concat(type).map(String);
56
56
  return [...this].reduce((providers, [_, provider]) => {
57
- if (types.includes(provider.type) || !type) {
57
+ if (types.includes(String(provider.type)) || !type) {
58
58
  return [...providers, provider];
59
59
  }
60
60
  return providers;
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../../src/common/domain/Container.ts"],"names":[],"mappings":";;;AAGA,yEAAiE;AACjE,+CAAuC;AAEvC,MAAa,SAAU,SAAQ,GAA4B;IACzD;;;;OAIG;IACI,GAAG,CAAC,KAAoB,EAAE,WAAkC,EAAE;QACnE,MAAM,QAAQ,GAAG,oCAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,sBAAQ,CAAC,KAAK,CAAC,CAAC;QAE5E,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAElC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAoB,EAAE,WAAkC,EAAE;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,KAAoB;QACrC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAoB,EAAE,QAAkB;QACzD,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAgC,KAAoB;QACpE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,IAAuC;QACzD,MAAM,KAAK,GAAI,EAAgC,CAAC,MAAM,CAAC,IAAa,CAAC,CAAC;QAEtE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE;YACnD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC1C,OAAO,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;aACjC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAEM,YAAY,CAAC,SAAuC;QACzD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzED,8BAyEC"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../../src/common/domain/Container.ts"],"names":[],"mappings":";;;AAGA,yEAAiE;AACjE,+CAAuC;AAEvC,MAAa,SAAU,SAAQ,GAA4B;IACzD;;;;OAIG;IACI,GAAG,CAAC,KAAoB,EAAE,WAAkC,EAAE;QACnE,MAAM,QAAQ,GAAG,oCAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,sBAAQ,CAAC,KAAK,CAAC,CAAC;QAE5E,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAElC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAoB,EAAE,WAAkC,EAAE;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,KAAoB;QACrC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAoB,EAAE,QAAkB;QACzD,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAgC,KAAgC;QAChF,OAAO,KAAK,CAAC,GAAG,CAAC,KAAM,CAAM,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,IAAuD;QACzE,MAAM,KAAK,GAAI,EAAgC,CAAC,MAAM,CAAC,IAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAElF,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE;YACnD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gBAClD,OAAO,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;aACjC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAEM,YAAY,CAAC,SAAuC;QACzD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzED,8BAyEC"}
@@ -30,7 +30,7 @@ class Provider {
30
30
  return this._useClass;
31
31
  }
32
32
  /**
33
- * Create a new store if the given value is a class. Otherwise the value is ignored.
33
+ * Create a new store if the given value is a class. Otherwise, the value is ignored.
34
34
  * @param value
35
35
  */
36
36
  set useClass(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/common/domain/Provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/common/domain/Provider.ts"],"names":[],"mappings":"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"}
@@ -30,13 +30,11 @@ tslib_1.__exportStar(require("./domain/ProviderScope.js"), exports);
30
30
  tslib_1.__exportStar(require("./domain/ProviderType.js"), exports);
31
31
  tslib_1.__exportStar(require("./errors/InjectionError.js"), exports);
32
32
  tslib_1.__exportStar(require("./errors/InvalidPropertyTokenError.js"), exports);
33
- tslib_1.__exportStar(require("./errors/UndefinedTokenError.js"), exports);
34
33
  tslib_1.__exportStar(require("./interfaces/DIConfigurationOptions.js"), exports);
35
34
  tslib_1.__exportStar(require("./interfaces/DILogger.js"), exports);
36
35
  tslib_1.__exportStar(require("./interfaces/DILoggerOptions.js"), exports);
37
36
  tslib_1.__exportStar(require("./interfaces/DIResolver.js"), exports);
38
37
  tslib_1.__exportStar(require("./interfaces/ImportTokenProviderOpts.js"), exports);
39
- tslib_1.__exportStar(require("./interfaces/InjectableProperties.js"), exports);
40
38
  tslib_1.__exportStar(require("./interfaces/InterceptorContext.js"), exports);
41
39
  tslib_1.__exportStar(require("./interfaces/InterceptorMethods.js"), exports);
42
40
  tslib_1.__exportStar(require("./interfaces/InvokeOptions.js"), exports);