ts-ioc-container 10.2.0 → 10.3.3

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 (88) hide show
  1. package/README.md +1 -0
  2. package/cjm/core/IInjector.d.ts +2 -3
  3. package/cjm/core/IInstanceHook.d.ts +2 -1
  4. package/cjm/core/IInstanceHook.js +4 -2
  5. package/cjm/core/IInstanceHook.js.map +1 -1
  6. package/cjm/core/ServiceLocator.d.ts +0 -1
  7. package/cjm/core/ServiceLocator.js +2 -7
  8. package/cjm/core/ServiceLocator.js.map +1 -1
  9. package/cjm/features/instanceHook/{decorators/IMethodsMetadataCollector.d.ts → IMethodsMetadataCollector.d.ts} +0 -0
  10. package/cjm/features/instanceHook/{decorators/IMethodsMetadataCollector.js → IMethodsMetadataCollector.js} +0 -0
  11. package/cjm/features/instanceHook/IMethodsMetadataCollector.js.map +1 -0
  12. package/cjm/features/instanceHook/{decorators/MethodsMetadataCollector.d.ts → MethodsMetadataCollector.d.ts} +0 -0
  13. package/cjm/features/instanceHook/{decorators/MethodsMetadataCollector.js → MethodsMetadataCollector.js} +0 -0
  14. package/cjm/features/instanceHook/MethodsMetadataCollector.js.map +1 -0
  15. package/cjm/features/instanceHook/{decorators/decorators.d.ts → decorators.d.ts} +0 -0
  16. package/cjm/features/instanceHook/{decorators/decorators.js → decorators.js} +0 -0
  17. package/cjm/features/instanceHook/decorators.js.map +1 -0
  18. package/cjm/features/ioc/IocInjector.d.ts +5 -7
  19. package/cjm/features/ioc/IocInjector.js +28 -8
  20. package/cjm/features/ioc/IocInjector.js.map +1 -1
  21. package/cjm/features/proxy/ProxyInjector.d.ts +0 -2
  22. package/cjm/features/proxy/ProxyInjector.js +0 -4
  23. package/cjm/features/proxy/ProxyInjector.js.map +1 -1
  24. package/cjm/features/simple/SimpleInjector.d.ts +0 -2
  25. package/cjm/features/simple/SimpleInjector.js +0 -4
  26. package/cjm/features/simple/SimpleInjector.js.map +1 -1
  27. package/cjm/helpers/utils.d.ts +1 -0
  28. package/cjm/helpers/utils.js +9 -1
  29. package/cjm/helpers/utils.js.map +1 -1
  30. package/cjm/index.d.ts +5 -7
  31. package/cjm/index.js +13 -14
  32. package/cjm/index.js.map +1 -1
  33. package/esm/core/IInjector.d.ts +2 -3
  34. package/esm/core/IInstanceHook.d.ts +2 -1
  35. package/esm/core/IInstanceHook.js +4 -2
  36. package/esm/core/IInstanceHook.js.map +1 -1
  37. package/esm/core/ServiceLocator.d.ts +0 -1
  38. package/esm/core/ServiceLocator.js +2 -7
  39. package/esm/core/ServiceLocator.js.map +1 -1
  40. package/esm/features/instanceHook/{decorators/IMethodsMetadataCollector.d.ts → IMethodsMetadataCollector.d.ts} +0 -0
  41. package/esm/features/instanceHook/{decorators/IMethodsMetadataCollector.js → IMethodsMetadataCollector.js} +0 -0
  42. package/esm/features/instanceHook/IMethodsMetadataCollector.js.map +1 -0
  43. package/esm/features/instanceHook/{decorators/MethodsMetadataCollector.d.ts → MethodsMetadataCollector.d.ts} +0 -0
  44. package/esm/features/instanceHook/{decorators/MethodsMetadataCollector.js → MethodsMetadataCollector.js} +0 -0
  45. package/esm/features/instanceHook/MethodsMetadataCollector.js.map +1 -0
  46. package/esm/features/instanceHook/{decorators/decorators.d.ts → decorators.d.ts} +0 -0
  47. package/esm/features/instanceHook/{decorators/decorators.js → decorators.js} +0 -0
  48. package/esm/features/instanceHook/decorators.js.map +1 -0
  49. package/esm/features/ioc/IocInjector.d.ts +5 -7
  50. package/esm/features/ioc/IocInjector.js +16 -8
  51. package/esm/features/ioc/IocInjector.js.map +1 -1
  52. package/esm/features/proxy/ProxyInjector.d.ts +0 -2
  53. package/esm/features/proxy/ProxyInjector.js +0 -4
  54. package/esm/features/proxy/ProxyInjector.js.map +1 -1
  55. package/esm/features/simple/SimpleInjector.d.ts +0 -2
  56. package/esm/features/simple/SimpleInjector.js +0 -4
  57. package/esm/features/simple/SimpleInjector.js.map +1 -1
  58. package/esm/helpers/utils.d.ts +1 -0
  59. package/esm/helpers/utils.js +3 -0
  60. package/esm/helpers/utils.js.map +1 -1
  61. package/esm/index.d.ts +5 -7
  62. package/esm/index.js +4 -5
  63. package/esm/index.js.map +1 -1
  64. package/package.json +2 -2
  65. package/cjm/features/instanceHook/decorators/IMethodsMetadataCollector.js.map +0 -1
  66. package/cjm/features/instanceHook/decorators/MethodsMetadataCollector.js.map +0 -1
  67. package/cjm/features/instanceHook/decorators/decorators.js.map +0 -1
  68. package/cjm/features/ioc/IInjectMetadataCollector.d.ts +0 -5
  69. package/cjm/features/ioc/IInjectMetadataCollector.js +0 -3
  70. package/cjm/features/ioc/IInjectMetadataCollector.js.map +0 -1
  71. package/cjm/features/ioc/decorators/InjectMetadataCollector.d.ts +0 -9
  72. package/cjm/features/ioc/decorators/InjectMetadataCollector.js +0 -22
  73. package/cjm/features/ioc/decorators/InjectMetadataCollector.js.map +0 -1
  74. package/cjm/features/ioc/decorators/decorators.d.ts +0 -8
  75. package/cjm/features/ioc/decorators/decorators.js +0 -46
  76. package/cjm/features/ioc/decorators/decorators.js.map +0 -1
  77. package/esm/features/instanceHook/decorators/IMethodsMetadataCollector.js.map +0 -1
  78. package/esm/features/instanceHook/decorators/MethodsMetadataCollector.js.map +0 -1
  79. package/esm/features/instanceHook/decorators/decorators.js.map +0 -1
  80. package/esm/features/ioc/IInjectMetadataCollector.d.ts +0 -5
  81. package/esm/features/ioc/IInjectMetadataCollector.js +0 -2
  82. package/esm/features/ioc/IInjectMetadataCollector.js.map +0 -1
  83. package/esm/features/ioc/decorators/InjectMetadataCollector.d.ts +0 -9
  84. package/esm/features/ioc/decorators/InjectMetadataCollector.js +0 -17
  85. package/esm/features/ioc/decorators/InjectMetadataCollector.js.map +0 -1
  86. package/esm/features/ioc/decorators/decorators.d.ts +0 -8
  87. package/esm/features/ioc/decorators/decorators.js +0 -10
  88. package/esm/features/ioc/decorators/decorators.js.map +0 -1
package/README.md CHANGED
@@ -287,6 +287,7 @@ export class MoqProvider<T> extends MockProvider<T> {
287
287
  }
288
288
  ```
289
289
 
290
+
290
291
  ## Errors
291
292
 
292
293
  - ProviderNotFoundError
@@ -1,6 +1,5 @@
1
- import { constructor, IDisposable } from '../helpers/types';
1
+ import { constructor } from '../helpers/types';
2
2
  import { IServiceLocator } from './IServiceLocator';
3
- export interface IInjector extends IDisposable {
3
+ export interface IInjector {
4
4
  resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
5
- clone(): IInjector;
6
5
  }
@@ -1,5 +1,6 @@
1
1
  export interface IInstanceHook {
2
- onConstruct(instance: unknown): void;
2
+ onConstruct<T>(instance: T): T;
3
+ onResolve<T>(instance: T): T;
3
4
  onDispose(instance: unknown): void;
4
5
  }
5
6
  export declare const emptyHook: IInstanceHook;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.emptyHook = void 0;
4
+ var utils_1 = require("../helpers/utils");
4
5
  exports.emptyHook = {
5
- onConstruct: function (instance) { },
6
- onDispose: function (instance) { },
6
+ onResolve: utils_1.id,
7
+ onConstruct: utils_1.id,
8
+ onDispose: function () { },
7
9
  };
8
10
  //# sourceMappingURL=IInstanceHook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":";;;AAMa,QAAA,SAAS,GAAkB;IACpC,WAAW,EAAX,UAAY,QAAiB,IAAS,CAAC;IACvC,SAAS,EAAT,UAAU,QAAiB,IAAS,CAAC;CACxC,CAAC"}
1
+ {"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":";;;AAAA,0CAAsC;AAUzB,QAAA,SAAS,GAAkB;IACpC,SAAS,EAAE,UAAE;IACb,WAAW,EAAE,UAAE;IACf,SAAS,EAAT,cAAmB,CAAC;CACvB,CAAC"}
@@ -18,6 +18,5 @@ export declare class ServiceLocator implements IServiceLocator {
18
18
  createScope(tags?: Tag[], parent?: IServiceLocator): ServiceLocator;
19
19
  entries(): Array<[ProviderKey, IProvider<any>]>;
20
20
  dispose(): void;
21
- setHook(hook: IInstanceHook): this;
22
21
  private onResolve;
23
22
  }
@@ -90,7 +90,7 @@ var ServiceLocator = /** @class */ (function () {
90
90
  var e_1, _a;
91
91
  if (tags === void 0) { tags = []; }
92
92
  if (parent === void 0) { parent = this; }
93
- var scope = new ServiceLocator(parent, this.injector.clone(), this.level + 1, tags, this.hook);
93
+ var scope = new ServiceLocator(parent, this.injector, this.level + 1, tags, this.hook);
94
94
  try {
95
95
  for (var _b = __values(parent.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
96
96
  var _d = __read(_c.value, 2), key = _d[0], provider = _d[1];
@@ -115,7 +115,6 @@ var ServiceLocator = /** @class */ (function () {
115
115
  ServiceLocator.prototype.dispose = function () {
116
116
  var e_2, _a, e_3, _b;
117
117
  this.parent = new EmptyServiceLocator_1.EmptyServiceLocator();
118
- this.injector.dispose();
119
118
  try {
120
119
  for (var _c = __values(this.providers.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
121
120
  var p = _d.value;
@@ -145,16 +144,12 @@ var ServiceLocator = /** @class */ (function () {
145
144
  }
146
145
  this.instances.clear();
147
146
  };
148
- ServiceLocator.prototype.setHook = function (hook) {
149
- this.hook = hook;
150
- return this;
151
- };
152
147
  ServiceLocator.prototype.onResolve = function (instance) {
153
148
  if (!this.instances.has(instance)) {
154
149
  this.instances.add(instance);
155
150
  this.hook.onConstruct(instance);
156
151
  }
157
- return instance;
152
+ return this.hook.onResolve(instance);
158
153
  };
159
154
  return ServiceLocator;
160
155
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/MethodsMetadataCollector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IACI,kCAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,0CAAO,GAAP,UAAkC,MAAiB,EAAE,WAA4B;QAC7E,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,yCAAM,KAAK,YAAE,WAAW,WAAG,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,gDAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;;YAET,KAAyB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE;gBAA3B,IAAM,UAAU,kBAAA;gBAChB,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;aACjC;;;;;;;;;IACL,CAAC;IAED,wDAAwD;IACzC,oCAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IACL,+BAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,4DAAwB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/decorators.ts"],"names":[],"mappings":";;;AAEA,SAAgB,yBAAyB,CAAC,QAAmC;IACzE,OAAO,UAAC,MAAM,EAAE,WAAW;QACvB,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC;AALD,8DAKC"}
@@ -1,11 +1,9 @@
1
1
  import { constructor } from '../../helpers/types';
2
- import { IServiceLocator } from '../../core/IServiceLocator';
2
+ import { InjectionToken, IServiceLocator } from '../../core/IServiceLocator';
3
3
  import { IInjector } from '../../core/IInjector';
4
- import { IInjectMetadataCollector } from './IInjectMetadataCollector';
4
+ import { InjectFn } from './InjectFn';
5
5
  export declare class IocInjector implements IInjector {
6
- private readonly metadataCollector;
7
- constructor(metadataCollector: IInjectMetadataCollector);
8
- resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
9
- clone(): IInjector;
10
- dispose(): void;
6
+ resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: unknown[]): T;
11
7
  }
8
+ export declare const injectFn: <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
9
+ export declare const inject: <T>(token: InjectionToken<T>, ...args: unknown[]) => ParameterDecorator;
@@ -25,26 +25,46 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
25
25
  return to.concat(ar || Array.prototype.slice.call(from));
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.IocInjector = void 0;
28
+ exports.inject = exports.injectFn = exports.IocInjector = void 0;
29
29
  var utils_1 = require("../../helpers/utils");
30
+ var METADATA_KEY = Symbol.for('IocInjector');
31
+ function getInjectionFns(target) {
32
+ var _a;
33
+ return (_a = Reflect.getOwnMetadata(METADATA_KEY, target)) !== null && _a !== void 0 ? _a : [];
34
+ }
35
+ // eslint-disable-next-line @typescript-eslint/ban-types
36
+ function addMetadata(target, parameterIndex, injectionFn) {
37
+ var metadata = getInjectionFns(target);
38
+ metadata[parameterIndex] = injectionFn;
39
+ Reflect.defineMetadata(METADATA_KEY, metadata, target);
40
+ }
30
41
  var IocInjector = /** @class */ (function () {
31
- function IocInjector(metadataCollector) {
32
- this.metadataCollector = metadataCollector;
42
+ function IocInjector() {
33
43
  }
34
44
  IocInjector.prototype.resolve = function (locator, value) {
35
45
  var deps = [];
36
46
  for (var _i = 2; _i < arguments.length; _i++) {
37
47
  deps[_i - 2] = arguments[_i];
38
48
  }
39
- var injectionFns = this.metadataCollector.getInjectionFns(value);
49
+ var injectionFns = getInjectionFns(value);
40
50
  var args = (0, utils_1.merge)(injectionFns, deps.map(utils_1.constant)).map(function (fn) { return fn(locator); });
41
51
  return new (value.bind.apply(value, __spreadArray([void 0], __read(args), false)))();
42
52
  };
43
- IocInjector.prototype.clone = function () {
44
- return new IocInjector(this.metadataCollector);
45
- };
46
- IocInjector.prototype.dispose = function () { };
47
53
  return IocInjector;
48
54
  }());
49
55
  exports.IocInjector = IocInjector;
56
+ var injectFn = function (injectionFn) {
57
+ return function (target, propertyKey, parameterIndex) {
58
+ addMetadata(target, parameterIndex, injectionFn);
59
+ };
60
+ };
61
+ exports.injectFn = injectFn;
62
+ var inject = function (token) {
63
+ var args = [];
64
+ for (var _i = 1; _i < arguments.length; _i++) {
65
+ args[_i - 1] = arguments[_i];
66
+ }
67
+ return (0, exports.injectFn)(function (l) { return l.resolve.apply(l, __spreadArray([token], __read(args), false)); });
68
+ };
69
+ exports.inject = inject;
50
70
  //# sourceMappingURL=IocInjector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,6CAAsD;AAGtD;IACI,qBAA6B,iBAA2C;QAA3C,sBAAiB,GAAjB,iBAAiB,CAA0B;IAAG,CAAC;IAE5E,6BAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACtE,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,IAAM,IAAI,GAAG,IAAA,aAAK,EAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,EAAX,CAAW,CAAC,CAAC;QAC9E,YAAW,KAAK,YAAL,KAAK,iCAAI,IAAI,cAAE;IAC9B,CAAC;IAED,2BAAK,GAAL;QACI,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED,6BAAO,GAAP,cAAiB,CAAC;IACtB,kBAAC;AAAD,CAAC,AAdD,IAcC;AAdY,kCAAW"}
1
+ {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,6CAAsD;AAGtD,IAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAE/C,SAAS,eAAe,CAAI,MAAS;;IACjC,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;AAC9D,CAAC;AAED,wDAAwD;AACxD,SAAS,WAAW,CAAI,MAAS,EAAE,cAAsB,EAAE,WAA8B;IACrF,IAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IACvC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;IAAA;IAMA,CAAC;IALG,6BAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAkB;aAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;YAAlB,6BAAkB;;QAC1E,IAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAM,IAAI,GAAG,IAAA,aAAK,EAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,EAAX,CAAW,CAAC,CAAC;QAC9E,YAAW,KAAK,YAAL,KAAK,iCAAI,IAAI,cAAE;IAC9B,CAAC;IACL,kBAAC;AAAD,CAAC,AAND,IAMC;AANY,kCAAW;AAQjB,IAAM,QAAQ,GACjB,UAAI,WAAwB;IAC5B,OAAA,UAAC,MAAM,EAAE,WAAW,EAAE,cAAc;QAChC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;AAFD,CAEC,CAAC;AAJO,QAAA,QAAQ,YAIf;AAEC,IAAM,MAAM,GAAG,UAAI,KAAwB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAClE,OAAA,IAAA,gBAAQ,EAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI,YAAxB,CAAyB,CAAC;AAA1C,CAA0C,CAAC;AADlC,QAAA,MAAM,UAC4B"}
@@ -3,6 +3,4 @@ import { IServiceLocator, ProviderKey } from '../../core/IServiceLocator';
3
3
  import { constructor } from '../../helpers/types';
4
4
  export declare class ProxyInjector implements IInjector {
5
5
  resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: Record<ProviderKey, unknown>[]): T;
6
- clone(): IInjector;
7
- dispose(): void;
8
6
  }
@@ -30,10 +30,6 @@ var ProxyInjector = /** @class */ (function () {
30
30
  },
31
31
  }));
32
32
  };
33
- ProxyInjector.prototype.clone = function () {
34
- return new ProxyInjector();
35
- };
36
- ProxyInjector.prototype.dispose = function () { };
37
33
  return ProxyInjector;
38
34
  }());
39
35
  exports.ProxyInjector = ProxyInjector;
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA;IAAA;IAoBA,CAAC;IAnBG,wDAAwD;IACxD,+BAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAuC;aAAvC,UAAuC,EAAvC,qBAAuC,EAAvC,IAAuC;YAAvC,6BAAuC;;QAC/F,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,uBAAM,GAAG,GAAK,EAAE,EAAG,EAAnB,CAAmB,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CACZ,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,wDAAwD;YACxD,GAAG,EAAH,UAAI,MAAuB,EAAE,IAAiB;gBAC1C,iDAAiD;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IAED,6BAAK,GAAL;QACI,OAAO,IAAI,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,+BAAO,GAAP,cAAiB,CAAC;IACtB,oBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,sCAAa"}
1
+ {"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA;IAAA;IAcA,CAAC;IAbG,wDAAwD;IACxD,+BAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAuC;aAAvC,UAAuC,EAAvC,qBAAuC,EAAvC,IAAuC;YAAvC,6BAAuC;;QAC/F,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,uBAAM,GAAG,GAAK,EAAE,EAAG,EAAnB,CAAmB,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CACZ,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,wDAAwD;YACxD,GAAG,EAAH,UAAI,MAAuB,EAAE,IAAiB;gBAC1C,iDAAiD;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IACL,oBAAC;AAAD,CAAC,AAdD,IAcC;AAdY,sCAAa"}
@@ -3,6 +3,4 @@ import { IServiceLocator } from '../../core/IServiceLocator';
3
3
  import { IInjector } from '../../core/IInjector';
4
4
  export declare class SimpleInjector implements IInjector {
5
5
  resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
6
- clone(): IInjector;
7
- dispose(): void;
8
6
  }
@@ -36,10 +36,6 @@ var SimpleInjector = /** @class */ (function () {
36
36
  }
37
37
  return new (value.bind.apply(value, __spreadArray([void 0, locator], __read(deps), false)))();
38
38
  };
39
- SimpleInjector.prototype.clone = function () {
40
- return new SimpleInjector();
41
- };
42
- SimpleInjector.prototype.dispose = function () { };
43
39
  return SimpleInjector;
44
40
  }());
45
41
  exports.SimpleInjector = SimpleInjector;
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;IAAA;IAUA,CAAC;IATG,gCAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACtE,YAAW,KAAK,YAAL,KAAK,yBAAC,OAAO,UAAK,IAAI,cAAE;IACvC,CAAC;IAED,8BAAK,GAAL;QACI,OAAO,IAAI,cAAc,EAAE,CAAC;IAChC,CAAC;IAED,gCAAO,GAAP,cAAiB,CAAC;IACtB,qBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,wCAAc"}
1
+ {"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;IAAA;IAIA,CAAC;IAHG,gCAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACtE,YAAW,KAAK,YAAL,KAAK,yBAAC,OAAO,UAAK,IAAI,cAAE;IACvC,CAAC;IACL,qBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,wCAAc"}
@@ -1,3 +1,4 @@
1
1
  export declare function merge<T>(baseArr: (T | undefined)[], insertArr: T[]): T[];
2
2
  export declare const constant: <T>(value: T) => () => T;
3
3
  export declare const id: <T>(value: T) => T;
4
+ export declare function composeClassDecorators(...decorators: ClassDecorator[]): ClassDecorator;
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  return ar;
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.id = exports.constant = exports.merge = void 0;
19
+ exports.composeClassDecorators = exports.id = exports.constant = exports.merge = void 0;
20
20
  function merge(baseArr, insertArr) {
21
21
  if (baseArr.length === 0) {
22
22
  return insertArr;
@@ -39,4 +39,12 @@ var constant = function (value) {
39
39
  exports.constant = constant;
40
40
  var id = function (value) { return value; };
41
41
  exports.id = id;
42
+ function composeClassDecorators() {
43
+ var decorators = [];
44
+ for (var _i = 0; _i < arguments.length; _i++) {
45
+ decorators[_i] = arguments[_i];
46
+ }
47
+ return function (target) { return decorators.forEach(function (it) { return it(target); }); };
48
+ }
49
+ exports.composeClassDecorators = composeClassDecorators;
42
50
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAgB,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACK,IAAA,KAAA,OAAuB,OAAO,CAAA,EAA7B,EAAE,QAAA,EAAK,WAAW,cAAW,CAAC;IAC/B,IAAA,KAAA,OAAyB,SAAS,CAAA,EAAjC,EAAE,QAAA,EAAK,aAAa,cAAa,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAbD,sBAaC;AAEM,IAAM,QAAQ,GACjB,UAAI,KAAQ;IACZ,OAAA;QACI,OAAA,KAAK;IAAL,CAAK;AADT,CACS,CAAC;AAHD,QAAA,QAAQ,YAGP;AAEP,IAAM,EAAE,GAAG,UAAI,KAAQ,IAAK,OAAA,KAAK,EAAL,CAAK,CAAC;AAA5B,QAAA,EAAE,MAA0B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAgB,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACK,IAAA,KAAA,OAAuB,OAAO,CAAA,EAA7B,EAAE,QAAA,EAAK,WAAW,cAAW,CAAC;IAC/B,IAAA,KAAA,OAAyB,SAAS,CAAA,EAAjC,EAAE,QAAA,EAAK,aAAa,cAAa,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAbD,sBAaC;AAEM,IAAM,QAAQ,GACjB,UAAI,KAAQ;IACZ,OAAA;QACI,OAAA,KAAK;IAAL,CAAK;AADT,CACS,CAAC;AAHD,QAAA,QAAQ,YAGP;AAEP,IAAM,EAAE,GAAG,UAAI,KAAQ,IAAK,OAAA,KAAK,EAAL,CAAK,CAAC;AAA5B,QAAA,EAAE,MAA0B;AAEzC,SAAgB,sBAAsB;IAAC,oBAA+B;SAA/B,UAA+B,EAA/B,qBAA+B,EAA/B,IAA+B;QAA/B,+BAA+B;;IAClE,OAAO,UAAC,MAAM,IAAK,OAAA,UAAU,CAAC,OAAO,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,MAAM,CAAC,EAAV,CAAU,CAAC,EAAtC,CAAsC,CAAC;AAC9D,CAAC;AAFD,wDAEC"}
package/cjm/index.d.ts CHANGED
@@ -6,13 +6,10 @@ export { IContainer } from './core/IContainer';
6
6
  export { ScopeOptions, ResolveDependency, Tag, IProvider, IKeyedProvider } from './core/provider/IProvider';
7
7
  export { IInjector } from './core/IInjector';
8
8
  export { SimpleInjector } from './features/simple/SimpleInjector';
9
- export { IocInjector } from './features/ioc/IocInjector';
10
- export { IInjectMetadataCollector } from './features/ioc/IInjectMetadataCollector';
11
- export { IMethodsMetadataCollector } from './features/instanceHook/decorators/IMethodsMetadataCollector';
12
- export { MethodsMetadataCollector } from './features/instanceHook/decorators/MethodsMetadataCollector';
13
- export { createMethodHookDecorator } from './features/instanceHook/decorators/decorators';
14
- export { createInjectDecorator, createInjectFnDecorator } from './features/ioc/decorators/decorators';
15
- export { InjectMetadataCollector } from './features/ioc/decorators/InjectMetadataCollector';
9
+ export { IocInjector, injectFn, inject } from './features/ioc/IocInjector';
10
+ export { IMethodsMetadataCollector } from './features/instanceHook/IMethodsMetadataCollector';
11
+ export { MethodsMetadataCollector } from './features/instanceHook/MethodsMetadataCollector';
12
+ export { createMethodHookDecorator } from './features/instanceHook/decorators';
16
13
  export { InjectionToken } from './core/IServiceLocator';
17
14
  export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
18
15
  export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
@@ -34,3 +31,4 @@ export { IDisposable } from './helpers/types';
34
31
  export { isProviderKey, RegisterOptions } from './core/IServiceLocator';
35
32
  export { ProviderKey } from './core/IServiceLocator';
36
33
  export { ContainerBuilder } from './core/ContainerBuilder';
34
+ export { composeClassDecorators } from './helpers/utils';
package/cjm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerBuilder = exports.isProviderKey = exports.createAddKeysDecorator = exports.createArgsFnDecorator = exports.createTagsDecorator = exports.createSingletonDecorator = exports.createLevelDecorator = exports.ProvidersMetadataCollector = exports.fromValue = exports.fromFn = exports.fromClass = exports.ProviderBuilder = exports.SingletonProvider = exports.MockedServiceLocator = exports.LevelProvider = exports.ProxyInjector = exports.TaggedProvider = exports.ArgsProvider = exports.Provider = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.InjectMetadataCollector = exports.createInjectFnDecorator = exports.createInjectDecorator = exports.createMethodHookDecorator = exports.MethodsMetadataCollector = exports.IocInjector = exports.SimpleInjector = exports.Container = exports.ServiceLocator = void 0;
3
+ exports.composeClassDecorators = exports.ContainerBuilder = exports.isProviderKey = exports.createAddKeysDecorator = exports.createArgsFnDecorator = exports.createTagsDecorator = exports.createSingletonDecorator = exports.createLevelDecorator = exports.ProvidersMetadataCollector = exports.fromValue = exports.fromFn = exports.fromClass = exports.ProviderBuilder = exports.SingletonProvider = exports.MockedServiceLocator = exports.LevelProvider = exports.ProxyInjector = exports.TaggedProvider = exports.ArgsProvider = exports.Provider = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.createMethodHookDecorator = exports.MethodsMetadataCollector = exports.inject = exports.injectFn = exports.IocInjector = exports.SimpleInjector = exports.Container = exports.ServiceLocator = void 0;
4
4
  var ServiceLocator_1 = require("./core/ServiceLocator");
5
5
  Object.defineProperty(exports, "ServiceLocator", { enumerable: true, get: function () { return ServiceLocator_1.ServiceLocator; } });
6
6
  var Container_1 = require("./core/Container");
@@ -9,15 +9,12 @@ var SimpleInjector_1 = require("./features/simple/SimpleInjector");
9
9
  Object.defineProperty(exports, "SimpleInjector", { enumerable: true, get: function () { return SimpleInjector_1.SimpleInjector; } });
10
10
  var IocInjector_1 = require("./features/ioc/IocInjector");
11
11
  Object.defineProperty(exports, "IocInjector", { enumerable: true, get: function () { return IocInjector_1.IocInjector; } });
12
- var MethodsMetadataCollector_1 = require("./features/instanceHook/decorators/MethodsMetadataCollector");
12
+ Object.defineProperty(exports, "injectFn", { enumerable: true, get: function () { return IocInjector_1.injectFn; } });
13
+ Object.defineProperty(exports, "inject", { enumerable: true, get: function () { return IocInjector_1.inject; } });
14
+ var MethodsMetadataCollector_1 = require("./features/instanceHook/MethodsMetadataCollector");
13
15
  Object.defineProperty(exports, "MethodsMetadataCollector", { enumerable: true, get: function () { return MethodsMetadataCollector_1.MethodsMetadataCollector; } });
14
- var decorators_1 = require("./features/instanceHook/decorators/decorators");
16
+ var decorators_1 = require("./features/instanceHook/decorators");
15
17
  Object.defineProperty(exports, "createMethodHookDecorator", { enumerable: true, get: function () { return decorators_1.createMethodHookDecorator; } });
16
- var decorators_2 = require("./features/ioc/decorators/decorators");
17
- Object.defineProperty(exports, "createInjectDecorator", { enumerable: true, get: function () { return decorators_2.createInjectDecorator; } });
18
- Object.defineProperty(exports, "createInjectFnDecorator", { enumerable: true, get: function () { return decorators_2.createInjectFnDecorator; } });
19
- var InjectMetadataCollector_1 = require("./features/ioc/decorators/InjectMetadataCollector");
20
- Object.defineProperty(exports, "InjectMetadataCollector", { enumerable: true, get: function () { return InjectMetadataCollector_1.InjectMetadataCollector; } });
21
18
  var ProviderNotFoundError_1 = require("./errors/ProviderNotFoundError");
22
19
  Object.defineProperty(exports, "ProviderNotFoundError", { enumerable: true, get: function () { return ProviderNotFoundError_1.ProviderNotFoundError; } });
23
20
  var MethodNotImplementedError_1 = require("./errors/MethodNotImplementedError");
@@ -43,14 +40,16 @@ Object.defineProperty(exports, "fromFn", { enumerable: true, get: function () {
43
40
  Object.defineProperty(exports, "fromValue", { enumerable: true, get: function () { return ProviderBuilder_1.fromValue; } });
44
41
  var ProvidersMetadataCollector_1 = require("./features/scope/ProvidersMetadataCollector");
45
42
  Object.defineProperty(exports, "ProvidersMetadataCollector", { enumerable: true, get: function () { return ProvidersMetadataCollector_1.ProvidersMetadataCollector; } });
46
- var decorators_3 = require("./features/scope/decorators");
47
- Object.defineProperty(exports, "createLevelDecorator", { enumerable: true, get: function () { return decorators_3.createLevelDecorator; } });
48
- Object.defineProperty(exports, "createSingletonDecorator", { enumerable: true, get: function () { return decorators_3.createSingletonDecorator; } });
49
- Object.defineProperty(exports, "createTagsDecorator", { enumerable: true, get: function () { return decorators_3.createTagsDecorator; } });
50
- Object.defineProperty(exports, "createArgsFnDecorator", { enumerable: true, get: function () { return decorators_3.createArgsFnDecorator; } });
51
- Object.defineProperty(exports, "createAddKeysDecorator", { enumerable: true, get: function () { return decorators_3.createAddKeysDecorator; } });
43
+ var decorators_2 = require("./features/scope/decorators");
44
+ Object.defineProperty(exports, "createLevelDecorator", { enumerable: true, get: function () { return decorators_2.createLevelDecorator; } });
45
+ Object.defineProperty(exports, "createSingletonDecorator", { enumerable: true, get: function () { return decorators_2.createSingletonDecorator; } });
46
+ Object.defineProperty(exports, "createTagsDecorator", { enumerable: true, get: function () { return decorators_2.createTagsDecorator; } });
47
+ Object.defineProperty(exports, "createArgsFnDecorator", { enumerable: true, get: function () { return decorators_2.createArgsFnDecorator; } });
48
+ Object.defineProperty(exports, "createAddKeysDecorator", { enumerable: true, get: function () { return decorators_2.createAddKeysDecorator; } });
52
49
  var IServiceLocator_1 = require("./core/IServiceLocator");
53
50
  Object.defineProperty(exports, "isProviderKey", { enumerable: true, get: function () { return IServiceLocator_1.isProviderKey; } });
54
51
  var ContainerBuilder_1 = require("./core/ContainerBuilder");
55
52
  Object.defineProperty(exports, "ContainerBuilder", { enumerable: true, get: function () { return ContainerBuilder_1.ContainerBuilder; } });
53
+ var utils_1 = require("./helpers/utils");
54
+ Object.defineProperty(exports, "composeClassDecorators", { enumerable: true, get: function () { return utils_1.composeClassDecorators; } });
56
55
  //# sourceMappingURL=index.js.map
package/cjm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAEA,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,8CAA6C;AAApC,sGAAA,SAAS,OAAA;AAIlB,mEAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,0DAAyD;AAAhD,0GAAA,WAAW,OAAA;AAGpB,wGAAuG;AAA9F,oIAAA,wBAAwB,OAAA;AACjC,4EAA0F;AAAjF,uHAAA,yBAAyB,OAAA;AAClC,mEAAsG;AAA7F,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AACvD,6FAA4F;AAAnF,kIAAA,uBAAuB,OAAA;AAEhC,wEAAuE;AAA9D,8HAAA,qBAAqB,OAAA;AAC9B,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAElC,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,6DAAoE;AAA3D,4GAAA,YAAY,OAAA;AAErB,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AACtB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AAEtB,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,wEAAuE;AAA9D,sHAAA,iBAAiB,OAAA;AAC1B,8DAA2F;AAAlF,kHAAA,eAAe,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,4GAAA,SAAS,OAAA;AAEtD,0FAAyF;AAAhF,wIAAA,0BAA0B,OAAA;AACnC,0DAMqC;AALjC,kHAAA,oBAAoB,OAAA;AACpB,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AACnB,mHAAA,qBAAqB,OAAA;AACrB,oHAAA,sBAAsB,OAAA;AAG1B,0DAAwE;AAA/D,gHAAA,aAAa,OAAA;AAEtB,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAEA,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,8CAA6C;AAApC,sGAAA,SAAS,OAAA;AAIlB,mEAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,0DAA2E;AAAlE,0GAAA,WAAW,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,qGAAA,MAAM,OAAA;AAEtC,6FAA4F;AAAnF,oIAAA,wBAAwB,OAAA;AACjC,iEAA+E;AAAtE,uHAAA,yBAAyB,OAAA;AAElC,wEAAuE;AAA9D,8HAAA,qBAAqB,OAAA;AAC9B,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAElC,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,6DAAoE;AAA3D,4GAAA,YAAY,OAAA;AAErB,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AACtB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AAEtB,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,wEAAuE;AAA9D,sHAAA,iBAAiB,OAAA;AAC1B,8DAA2F;AAAlF,kHAAA,eAAe,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,4GAAA,SAAS,OAAA;AAEtD,0FAAyF;AAAhF,wIAAA,0BAA0B,OAAA;AACnC,0DAMqC;AALjC,kHAAA,oBAAoB,OAAA;AACpB,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AACnB,mHAAA,qBAAqB,OAAA;AACrB,oHAAA,sBAAsB,OAAA;AAG1B,0DAAwE;AAA/D,gHAAA,aAAa,OAAA;AAEtB,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,yCAAyD;AAAhD,+GAAA,sBAAsB,OAAA"}
@@ -1,6 +1,5 @@
1
- import { constructor, IDisposable } from '../helpers/types';
1
+ import { constructor } from '../helpers/types';
2
2
  import { IServiceLocator } from './IServiceLocator';
3
- export interface IInjector extends IDisposable {
3
+ export interface IInjector {
4
4
  resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
5
- clone(): IInjector;
6
5
  }
@@ -1,5 +1,6 @@
1
1
  export interface IInstanceHook {
2
- onConstruct(instance: unknown): void;
2
+ onConstruct<T>(instance: T): T;
3
+ onResolve<T>(instance: T): T;
3
4
  onDispose(instance: unknown): void;
4
5
  }
5
6
  export declare const emptyHook: IInstanceHook;
@@ -1,5 +1,7 @@
1
+ import { id } from '../helpers/utils';
1
2
  export const emptyHook = {
2
- onConstruct(instance) { },
3
- onDispose(instance) { },
3
+ onResolve: id,
4
+ onConstruct: id,
5
+ onDispose() { },
4
6
  };
5
7
  //# sourceMappingURL=IInstanceHook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,SAAS,GAAkB;IACpC,WAAW,CAAC,QAAiB,IAAS,CAAC;IACvC,SAAS,CAAC,QAAiB,IAAS,CAAC;CACxC,CAAC"}
1
+ {"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAUtC,MAAM,CAAC,MAAM,SAAS,GAAkB;IACpC,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,SAAS,KAAU,CAAC;CACvB,CAAC"}
@@ -18,6 +18,5 @@ export declare class ServiceLocator implements IServiceLocator {
18
18
  createScope(tags?: Tag[], parent?: IServiceLocator): ServiceLocator;
19
19
  entries(): Array<[ProviderKey, IProvider<any>]>;
20
20
  dispose(): void;
21
- setHook(hook: IInstanceHook): this;
22
21
  private onResolve;
23
22
  }
@@ -39,7 +39,7 @@ export class ServiceLocator {
39
39
  return provider;
40
40
  }
41
41
  createScope(tags = [], parent = this) {
42
- const scope = new ServiceLocator(parent, this.injector.clone(), this.level + 1, tags, this.hook);
42
+ const scope = new ServiceLocator(parent, this.injector, this.level + 1, tags, this.hook);
43
43
  for (const [key, provider] of parent.entries()) {
44
44
  if (provider.isValid(scope)) {
45
45
  scope.register(key, provider.clone());
@@ -53,7 +53,6 @@ export class ServiceLocator {
53
53
  }
54
54
  dispose() {
55
55
  this.parent = new EmptyServiceLocator();
56
- this.injector.dispose();
57
56
  for (const p of this.providers.values()) {
58
57
  p.dispose();
59
58
  }
@@ -63,16 +62,12 @@ export class ServiceLocator {
63
62
  }
64
63
  this.instances.clear();
65
64
  }
66
- setHook(hook) {
67
- this.hook = hook;
68
- return this;
69
- }
70
65
  onResolve(instance) {
71
66
  if (!this.instances.has(instance)) {
72
67
  this.instances.add(instance);
73
68
  this.hook.onConstruct(instance);
74
69
  }
75
- return instance;
70
+ return this.hook.onResolve(instance);
76
71
  }
77
72
  }
78
73
  //# sourceMappingURL=ServiceLocator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/MethodsMetadataCollector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QAC7E,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,aAAa,CAA2B,MAAiB;QACrD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QAET,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE;YAC3B,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;SACjC;IACL,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,WAAW,CAAiC,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;CACJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,QAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3B,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC"}
@@ -1,11 +1,9 @@
1
1
  import { constructor } from '../../helpers/types';
2
- import { IServiceLocator } from '../../core/IServiceLocator';
2
+ import { InjectionToken, IServiceLocator } from '../../core/IServiceLocator';
3
3
  import { IInjector } from '../../core/IInjector';
4
- import { IInjectMetadataCollector } from './IInjectMetadataCollector';
4
+ import { InjectFn } from './InjectFn';
5
5
  export declare class IocInjector implements IInjector {
6
- private readonly metadataCollector;
7
- constructor(metadataCollector: IInjectMetadataCollector);
8
- resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
9
- clone(): IInjector;
10
- dispose(): void;
6
+ resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: unknown[]): T;
11
7
  }
8
+ export declare const injectFn: <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
9
+ export declare const inject: <T>(token: InjectionToken<T>, ...args: unknown[]) => ParameterDecorator;
@@ -1,16 +1,24 @@
1
1
  import { constant, merge } from '../../helpers/utils';
2
+ const METADATA_KEY = Symbol.for('IocInjector');
3
+ function getInjectionFns(target) {
4
+ var _a;
5
+ return (_a = Reflect.getOwnMetadata(METADATA_KEY, target)) !== null && _a !== void 0 ? _a : [];
6
+ }
7
+ // eslint-disable-next-line @typescript-eslint/ban-types
8
+ function addMetadata(target, parameterIndex, injectionFn) {
9
+ const metadata = getInjectionFns(target);
10
+ metadata[parameterIndex] = injectionFn;
11
+ Reflect.defineMetadata(METADATA_KEY, metadata, target);
12
+ }
2
13
  export class IocInjector {
3
- constructor(metadataCollector) {
4
- this.metadataCollector = metadataCollector;
5
- }
6
14
  resolve(locator, value, ...deps) {
7
- const injectionFns = this.metadataCollector.getInjectionFns(value);
15
+ const injectionFns = getInjectionFns(value);
8
16
  const args = merge(injectionFns, deps.map(constant)).map((fn) => fn(locator));
9
17
  return new value(...args);
10
18
  }
11
- clone() {
12
- return new IocInjector(this.metadataCollector);
13
- }
14
- dispose() { }
15
19
  }
20
+ export const injectFn = (injectionFn) => (target, propertyKey, parameterIndex) => {
21
+ addMetadata(target, parameterIndex, injectionFn);
22
+ };
23
+ export const inject = (token, ...args) => injectFn((l) => l.resolve(token, ...args));
16
24
  //# sourceMappingURL=IocInjector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,OAAO,WAAW;IACpB,YAA6B,iBAA2C;QAA3C,sBAAiB,GAAjB,iBAAiB,CAA0B;IAAG,CAAC;IAE5E,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAW;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,KAAU,CAAC;CACrB"}
1
+ {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAE/C,SAAS,eAAe,CAAI,MAAS;;IACjC,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;AAC9D,CAAC;AAED,wDAAwD;AACxD,SAAS,WAAW,CAAI,MAAS,EAAE,cAAsB,EAAE,WAA8B;IACrF,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IACvC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,OAAO,WAAW;IACpB,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAe;QAC1E,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAI,WAAwB,EAAsB,EAAE,CACpD,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;IACpC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAAwB,EAAE,GAAG,IAAe,EAAsB,EAAE,CAC1F,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC"}
@@ -3,6 +3,4 @@ import { IServiceLocator, ProviderKey } from '../../core/IServiceLocator';
3
3
  import { constructor } from '../../helpers/types';
4
4
  export declare class ProxyInjector implements IInjector {
5
5
  resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: Record<ProviderKey, unknown>[]): T;
6
- clone(): IInjector;
7
- dispose(): void;
8
6
  }
@@ -10,9 +10,5 @@ export class ProxyInjector {
10
10
  },
11
11
  }));
12
12
  }
13
- clone() {
14
- return new ProxyInjector();
15
- }
16
- dispose() { }
17
13
  }
18
14
  //# sourceMappingURL=ProxyInjector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IACtB,wDAAwD;IACxD,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAoC;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,iCAAM,GAAG,GAAK,EAAE,EAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CACZ,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,wDAAwD;YACxD,GAAG,CAAC,MAAuB,EAAE,IAAiB;gBAC1C,iDAAiD;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IAED,KAAK;QACD,OAAO,IAAI,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,KAAU,CAAC;CACrB"}
1
+ {"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IACtB,wDAAwD;IACxD,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAoC;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,iCAAM,GAAG,GAAK,EAAE,EAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CACZ,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,wDAAwD;YACxD,GAAG,CAAC,MAAuB,EAAE,IAAiB;gBAC1C,iDAAiD;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;CACJ"}
@@ -3,6 +3,4 @@ import { IServiceLocator } from '../../core/IServiceLocator';
3
3
  import { IInjector } from '../../core/IInjector';
4
4
  export declare class SimpleInjector implements IInjector {
5
5
  resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
6
- clone(): IInjector;
7
- dispose(): void;
8
6
  }
@@ -2,9 +2,5 @@ export class SimpleInjector {
2
2
  resolve(locator, value, ...deps) {
3
3
  return new value(locator, ...deps);
4
4
  }
5
- clone() {
6
- return new SimpleInjector();
7
- }
8
- dispose() { }
9
5
  }
10
6
  //# sourceMappingURL=SimpleInjector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;IACvB,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAW;QACtE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,cAAc,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,KAAU,CAAC;CACrB"}
1
+ {"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;IACvB,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAW;QACtE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ"}
@@ -1,3 +1,4 @@
1
1
  export declare function merge<T>(baseArr: (T | undefined)[], insertArr: T[]): T[];
2
2
  export declare const constant: <T>(value: T) => () => T;
3
3
  export declare const id: <T>(value: T) => T;
4
+ export declare function composeClassDecorators(...decorators: ClassDecorator[]): ClassDecorator;
@@ -13,4 +13,7 @@ export function merge(baseArr, insertArr) {
13
13
  }
14
14
  export const constant = (value) => () => value;
15
15
  export const id = (value) => value;
16
+ export function composeClassDecorators(...decorators) {
17
+ return (target) => decorators.forEach((it) => it(target));
18
+ }
16
19
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACD,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAI,KAAQ,EAAE,EAAE,CAChB,GAAG,EAAE,CACD,KAAK,CAAC;AAEd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACD,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAI,KAAQ,EAAE,EAAE,CAChB,GAAG,EAAE,CACD,KAAK,CAAC;AAEd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC;AAEzC,MAAM,UAAU,sBAAsB,CAAC,GAAG,UAA4B;IAClE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC"}
package/esm/index.d.ts CHANGED
@@ -6,13 +6,10 @@ export { IContainer } from './core/IContainer';
6
6
  export { ScopeOptions, ResolveDependency, Tag, IProvider, IKeyedProvider } from './core/provider/IProvider';
7
7
  export { IInjector } from './core/IInjector';
8
8
  export { SimpleInjector } from './features/simple/SimpleInjector';
9
- export { IocInjector } from './features/ioc/IocInjector';
10
- export { IInjectMetadataCollector } from './features/ioc/IInjectMetadataCollector';
11
- export { IMethodsMetadataCollector } from './features/instanceHook/decorators/IMethodsMetadataCollector';
12
- export { MethodsMetadataCollector } from './features/instanceHook/decorators/MethodsMetadataCollector';
13
- export { createMethodHookDecorator } from './features/instanceHook/decorators/decorators';
14
- export { createInjectDecorator, createInjectFnDecorator } from './features/ioc/decorators/decorators';
15
- export { InjectMetadataCollector } from './features/ioc/decorators/InjectMetadataCollector';
9
+ export { IocInjector, injectFn, inject } from './features/ioc/IocInjector';
10
+ export { IMethodsMetadataCollector } from './features/instanceHook/IMethodsMetadataCollector';
11
+ export { MethodsMetadataCollector } from './features/instanceHook/MethodsMetadataCollector';
12
+ export { createMethodHookDecorator } from './features/instanceHook/decorators';
16
13
  export { InjectionToken } from './core/IServiceLocator';
17
14
  export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
18
15
  export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
@@ -34,3 +31,4 @@ export { IDisposable } from './helpers/types';
34
31
  export { isProviderKey, RegisterOptions } from './core/IServiceLocator';
35
32
  export { ProviderKey } from './core/IServiceLocator';
36
33
  export { ContainerBuilder } from './core/ContainerBuilder';
34
+ export { composeClassDecorators } from './helpers/utils';
package/esm/index.js CHANGED
@@ -1,11 +1,9 @@
1
1
  export { ServiceLocator } from './core/ServiceLocator';
2
2
  export { Container } from './core/Container';
3
3
  export { SimpleInjector } from './features/simple/SimpleInjector';
4
- export { IocInjector } from './features/ioc/IocInjector';
5
- export { MethodsMetadataCollector } from './features/instanceHook/decorators/MethodsMetadataCollector';
6
- export { createMethodHookDecorator } from './features/instanceHook/decorators/decorators';
7
- export { createInjectDecorator, createInjectFnDecorator } from './features/ioc/decorators/decorators';
8
- export { InjectMetadataCollector } from './features/ioc/decorators/InjectMetadataCollector';
4
+ export { IocInjector, injectFn, inject } from './features/ioc/IocInjector';
5
+ export { MethodsMetadataCollector } from './features/instanceHook/MethodsMetadataCollector';
6
+ export { createMethodHookDecorator } from './features/instanceHook/decorators';
9
7
  export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
10
8
  export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
11
9
  export { Provider } from './core/provider/Provider';
@@ -20,4 +18,5 @@ export { ProvidersMetadataCollector } from './features/scope/ProvidersMetadataCo
20
18
  export { createLevelDecorator, createSingletonDecorator, createTagsDecorator, createArgsFnDecorator, createAddKeysDecorator, } from './features/scope/decorators';
21
19
  export { isProviderKey } from './core/IServiceLocator';
22
20
  export { ContainerBuilder } from './core/ContainerBuilder';
21
+ export { composeClassDecorators } from './helpers/utils';
23
22
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EACH,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EACH,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "10.2.0",
3
+ "version": "10.3.3",
4
4
  "description": "Typescript IoC container",
5
5
  "author": "ibabkin <ibabkin@goodgamestudios.com>",
6
6
  "homepage": "https://github.com/IgorBabkin/service-locator/tree/master/packages/ts-ioc-container",
@@ -48,7 +48,7 @@
48
48
  "ts-jest": "27.0.5",
49
49
  "typescript": "4.4.3"
50
50
  },
51
- "gitHead": "0f72fdc5547cce8b781b9aa9b1e9fe4b521936ea",
51
+ "gitHead": "149234df785ec46cac43142cec60faab3bdfb0e1",
52
52
  "peerDependencies": {
53
53
  "reflect-metadata": "^0.1.13"
54
54
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/MethodsMetadataCollector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IACI,kCAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,0CAAO,GAAP,UAAkC,MAAiB,EAAE,WAA4B;QAC7E,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,yCAAM,KAAK,YAAE,WAAW,WAAG,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,gDAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;;YAET,KAAyB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE;gBAA3B,IAAM,UAAU,kBAAA;gBAChB,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;aACjC;;;;;;;;;IACL,CAAC;IAED,wDAAwD;IACzC,oCAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IACL,+BAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,4DAAwB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/decorators.ts"],"names":[],"mappings":";;;AAEA,SAAgB,yBAAyB,CAAC,QAAmC;IACzE,OAAO,UAAC,MAAM,EAAE,WAAW;QACvB,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC;AALD,8DAKC"}
@@ -1,5 +0,0 @@
1
- import { InjectFn } from './InjectFn';
2
- export interface IInjectMetadataCollector {
3
- addMetadata<T>(target: T, parameterIndex: number, injectionFn: InjectFn<any>): void;
4
- getInjectionFns<T>(target: T): InjectFn<any>[];
5
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IInjectMetadataCollector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IInjectMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IInjectMetadataCollector.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import 'reflect-metadata';
2
- import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
3
- import { InjectFn } from '../InjectFn';
4
- export declare class InjectMetadataCollector implements IInjectMetadataCollector {
5
- private readonly metadataKey;
6
- constructor(metadataKey: string | symbol);
7
- addMetadata<T>(target: T, parameterIndex: number, injectionFn: InjectFn<any>): void;
8
- getInjectionFns<T>(target: T): InjectFn<any>[];
9
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InjectMetadataCollector = void 0;
4
- require("reflect-metadata");
5
- var InjectMetadataCollector = /** @class */ (function () {
6
- function InjectMetadataCollector(metadataKey) {
7
- this.metadataKey = metadataKey;
8
- }
9
- // eslint-disable-next-line @typescript-eslint/ban-types
10
- InjectMetadataCollector.prototype.addMetadata = function (target, parameterIndex, injectionFn) {
11
- var metadata = this.getInjectionFns(target);
12
- metadata[parameterIndex] = injectionFn;
13
- Reflect.defineMetadata(this.metadataKey, metadata, target);
14
- };
15
- InjectMetadataCollector.prototype.getInjectionFns = function (target) {
16
- var _a;
17
- return (_a = Reflect.getOwnMetadata(this.metadataKey, target)) !== null && _a !== void 0 ? _a : [];
18
- };
19
- return InjectMetadataCollector;
20
- }());
21
- exports.InjectMetadataCollector = InjectMetadataCollector;
22
- //# sourceMappingURL=InjectMetadataCollector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InjectMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/InjectMetadataCollector.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAI1B;IACI,iCAA6B,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAE7D,wDAAwD;IACxD,6CAAW,GAAX,UAAe,MAAS,EAAE,cAAsB,EAAE,WAA0B;QACxE,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QACvC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,iDAAe,GAAf,UAAmB,MAAS;;QACxB,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;IAClE,CAAC;IACL,8BAAC;AAAD,CAAC,AAbD,IAaC;AAbY,0DAAuB"}
@@ -1,8 +0,0 @@
1
- import { InjectFn } from '../InjectFn';
2
- import { InjectionToken } from '../../../core/IServiceLocator';
3
- import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
4
- export declare type InjectFnDecorator = <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
5
- export declare function createInjectFnDecorator(metadata: IInjectMetadataCollector): InjectFnDecorator;
6
- declare type InjectDecorator = <T>(token: InjectionToken<T>, ...args: any[]) => ParameterDecorator;
7
- export declare function createInjectDecorator(metadata: IInjectMetadataCollector): InjectDecorator;
8
- export {};
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
26
- };
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.createInjectDecorator = exports.createInjectFnDecorator = void 0;
29
- function createInjectFnDecorator(metadata) {
30
- return function (injectionFn) { return function (target, propertyKey, parameterIndex) {
31
- metadata.addMetadata(target, parameterIndex, injectionFn);
32
- }; };
33
- }
34
- exports.createInjectFnDecorator = createInjectFnDecorator;
35
- function createInjectDecorator(metadata) {
36
- var decorator = createInjectFnDecorator(metadata);
37
- return function (token) {
38
- var args = [];
39
- for (var _i = 1; _i < arguments.length; _i++) {
40
- args[_i - 1] = arguments[_i];
41
- }
42
- return decorator(function (l) { return l.resolve.apply(l, __spreadArray([token], __read(args), false)); });
43
- };
44
- }
45
- exports.createInjectDecorator = createInjectDecorator;
46
- //# sourceMappingURL=decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAgB,uBAAuB,CAAC,QAAkC;IACtE,OAAO,UAAC,WAAW,IAAK,OAAA,UAAC,MAAM,EAAE,WAAW,EAAE,cAAc;QACxD,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC,EAFuB,CAEvB,CAAC;AACN,CAAC;AAJD,0DAIC;AAGD,SAAgB,qBAAqB,CAAC,QAAkC;IACpE,IAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,UAAI,KAAwB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAAK,OAAA,SAAS,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI,YAAxB,CAAyB,CAAC;IAA3C,CAA2C,CAAC;AACxG,CAAC;AAHD,sDAGC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/MethodsMetadataCollector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QAC7E,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,aAAa,CAA2B,MAAiB;QACrD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QAET,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE;YAC3B,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;SACjC;IACL,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,WAAW,CAAiC,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,QAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3B,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC"}
@@ -1,5 +0,0 @@
1
- import { InjectFn } from './InjectFn';
2
- export interface IInjectMetadataCollector {
3
- addMetadata<T>(target: T, parameterIndex: number, injectionFn: InjectFn<any>): void;
4
- getInjectionFns<T>(target: T): InjectFn<any>[];
5
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=IInjectMetadataCollector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IInjectMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IInjectMetadataCollector.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import 'reflect-metadata';
2
- import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
3
- import { InjectFn } from '../InjectFn';
4
- export declare class InjectMetadataCollector implements IInjectMetadataCollector {
5
- private readonly metadataKey;
6
- constructor(metadataKey: string | symbol);
7
- addMetadata<T>(target: T, parameterIndex: number, injectionFn: InjectFn<any>): void;
8
- getInjectionFns<T>(target: T): InjectFn<any>[];
9
- }
@@ -1,17 +0,0 @@
1
- import 'reflect-metadata';
2
- export class InjectMetadataCollector {
3
- constructor(metadataKey) {
4
- this.metadataKey = metadataKey;
5
- }
6
- // eslint-disable-next-line @typescript-eslint/ban-types
7
- addMetadata(target, parameterIndex, injectionFn) {
8
- const metadata = this.getInjectionFns(target);
9
- metadata[parameterIndex] = injectionFn;
10
- Reflect.defineMetadata(this.metadataKey, metadata, target);
11
- }
12
- getInjectionFns(target) {
13
- var _a;
14
- return (_a = Reflect.getOwnMetadata(this.metadataKey, target)) !== null && _a !== void 0 ? _a : [];
15
- }
16
- }
17
- //# sourceMappingURL=InjectMetadataCollector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InjectMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/InjectMetadataCollector.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,MAAM,OAAO,uBAAuB;IAChC,YAA6B,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAE7D,wDAAwD;IACxD,WAAW,CAAI,MAAS,EAAE,cAAsB,EAAE,WAA0B;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QACvC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAI,MAAS;;QACxB,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;IAClE,CAAC;CACJ"}
@@ -1,8 +0,0 @@
1
- import { InjectFn } from '../InjectFn';
2
- import { InjectionToken } from '../../../core/IServiceLocator';
3
- import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
4
- export declare type InjectFnDecorator = <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
5
- export declare function createInjectFnDecorator(metadata: IInjectMetadataCollector): InjectFnDecorator;
6
- declare type InjectDecorator = <T>(token: InjectionToken<T>, ...args: any[]) => ParameterDecorator;
7
- export declare function createInjectDecorator(metadata: IInjectMetadataCollector): InjectDecorator;
8
- export {};
@@ -1,10 +0,0 @@
1
- export function createInjectFnDecorator(metadata) {
2
- return (injectionFn) => (target, propertyKey, parameterIndex) => {
3
- metadata.addMetadata(target, parameterIndex, injectionFn);
4
- };
5
- }
6
- export function createInjectDecorator(metadata) {
7
- const decorator = createInjectFnDecorator(metadata);
8
- return (token, ...args) => decorator((l) => l.resolve(token, ...args));
9
- }
10
- //# sourceMappingURL=decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/decorators.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,uBAAuB,CAAC,QAAkC;IACtE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;QAC5D,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC,CAAC;AACN,CAAC;AAGD,MAAM,UAAU,qBAAqB,CAAC,QAAkC;IACpE,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAI,KAAwB,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACxG,CAAC"}