ts-ioc-container 15.0.0 → 16.0.0

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 (56) hide show
  1. package/README.md +13 -12
  2. package/cjm/core/provider/Provider.d.ts +1 -2
  3. package/cjm/core/provider/Provider.js +8 -9
  4. package/cjm/core/provider/Provider.js.map +1 -1
  5. package/cjm/core/provider/ProviderReflector.d.ts +1 -0
  6. package/cjm/core/provider/ProviderReflector.js +2 -1
  7. package/cjm/core/provider/ProviderReflector.js.map +1 -1
  8. package/cjm/hooks/IMethodReflector.d.ts +0 -2
  9. package/cjm/hooks/IMethodReflector.js +0 -8
  10. package/cjm/hooks/IMethodReflector.js.map +1 -1
  11. package/cjm/hooks/MethodReflector.d.ts +2 -1
  12. package/cjm/hooks/MethodReflector.js +7 -0
  13. package/cjm/hooks/MethodReflector.js.map +1 -1
  14. package/cjm/index.d.ts +4 -14
  15. package/cjm/index.js +18 -41
  16. package/cjm/index.js.map +1 -1
  17. package/cjm/providers/LevelProvider.d.ts +1 -2
  18. package/cjm/providers/LevelProvider.js +8 -9
  19. package/cjm/providers/LevelProvider.js.map +1 -1
  20. package/cjm/providers/ProviderBuilder.d.ts +4 -0
  21. package/cjm/providers/ProviderBuilder.js +11 -0
  22. package/cjm/providers/ProviderBuilder.js.map +1 -1
  23. package/cjm/providers/SingletonProvider.d.ts +1 -2
  24. package/cjm/providers/SingletonProvider.js +7 -8
  25. package/cjm/providers/SingletonProvider.js.map +1 -1
  26. package/cjm/providers/TaggedProvider.d.ts +1 -2
  27. package/cjm/providers/TaggedProvider.js +15 -16
  28. package/cjm/providers/TaggedProvider.js.map +1 -1
  29. package/esm/core/provider/Provider.d.ts +1 -2
  30. package/esm/core/provider/Provider.js +4 -3
  31. package/esm/core/provider/Provider.js.map +1 -1
  32. package/esm/core/provider/ProviderReflector.d.ts +1 -0
  33. package/esm/core/provider/ProviderReflector.js +1 -0
  34. package/esm/core/provider/ProviderReflector.js.map +1 -1
  35. package/esm/hooks/IMethodReflector.d.ts +0 -2
  36. package/esm/hooks/IMethodReflector.js +1 -6
  37. package/esm/hooks/IMethodReflector.js.map +1 -1
  38. package/esm/hooks/MethodReflector.d.ts +2 -1
  39. package/esm/hooks/MethodReflector.js +6 -0
  40. package/esm/hooks/MethodReflector.js.map +1 -1
  41. package/esm/index.d.ts +4 -14
  42. package/esm/index.js +4 -23
  43. package/esm/index.js.map +1 -1
  44. package/esm/providers/LevelProvider.d.ts +1 -2
  45. package/esm/providers/LevelProvider.js +4 -3
  46. package/esm/providers/LevelProvider.js.map +1 -1
  47. package/esm/providers/ProviderBuilder.d.ts +4 -0
  48. package/esm/providers/ProviderBuilder.js +11 -0
  49. package/esm/providers/ProviderBuilder.js.map +1 -1
  50. package/esm/providers/SingletonProvider.d.ts +1 -2
  51. package/esm/providers/SingletonProvider.js +4 -3
  52. package/esm/providers/SingletonProvider.js.map +1 -1
  53. package/esm/providers/TaggedProvider.d.ts +1 -2
  54. package/esm/providers/TaggedProvider.js +4 -3
  55. package/esm/providers/TaggedProvider.js.map +1 -1
  56. package/package.json +2 -2
package/README.md CHANGED
@@ -40,7 +40,7 @@ yarn add ts-ioc-container reflect-metadata
40
40
  How to create new container
41
41
 
42
42
  ```typescript
43
- import { Container, fromClass, IInjector } from "ts-ioc-container";
43
+ import { Container, IInjector, ProviderBuilder } from "ts-ioc-container";
44
44
  import { resolve } from 'ts-constructor-injector';
45
45
 
46
46
  const injector: IInjector = {
@@ -49,20 +49,20 @@ const injector: IInjector = {
49
49
  },
50
50
  };
51
51
  const container = new Container(injector);
52
- container.register('ILogger', fromClass(Logger).build());
52
+ container.register('ILogger', ProviderBuilder.fromClass(Logger).build());
53
53
  const logger = container.resolve<ILogger>('ILogger');
54
54
  ```
55
55
 
56
56
  ## ProviderBuilder
57
57
 
58
58
  ```typescript
59
- import { fromClass } from "ts-ioc-container";
59
+ import { fromClass, ProviderBuilder } from "ts-ioc-container";
60
60
 
61
61
  container.register('ILogger', new ProviderBuilder((container, ...args) => new Logger(...args)).build());
62
- container.register('ILogger1', fromClass(Logger).forKey('ILogger').asSingleton().forLevel(0).build()); // global singleton
63
- container.register('ILogger2', fromClass(Logger).asSingleton().forLevel(1).build()); // first scope singleton
64
- container.register('ILogger3', fromClass(Logger).asSingleton().forTags(['tag1', 'tag2']).build()); // singleton for scope with tag1 or tag2
65
- container.register('ILogger4', fromClass(Logger).withArgs('dev').asSingleton().build()); // singleton in every scope
62
+ container.register('ILogger1', ProviderBuilder.fromClass(Logger).forKey('ILogger').asSingleton().forLevel(0).build()); // global singleton
63
+ container.register('ILogger2', ProviderBuilder.fromClass(Logger).asSingleton().forLevel(1).build()); // first scope singleton
64
+ container.register('ILogger3', ProviderBuilder.fromClass(Logger).asSingleton().forTags(['tag1', 'tag2']).build()); // singleton for scope with tag1 or tag2
65
+ container.register('ILogger4', ProviderBuilder.fromClass(Logger).withArgs('dev').asSingleton().build()); // singleton in every scope
66
66
  ```
67
67
 
68
68
  ## Decorators
@@ -89,13 +89,14 @@ import {
89
89
  Container,
90
90
  IInjector,
91
91
  ContainerHook,
92
+ ProviderBuilder,
92
93
  } from "ts-ioc-container";
93
94
 
94
- export const onConstructMetadataCollector = new MethodReflector('OnConstructHook');
95
- export const onConstruct = createMethodHookDecorator(onConstructMetadataCollector);
95
+ export const onConstructReflector = new MethodReflector('OnConstructHook');
96
+ export const onConstruct = onConstructReflector.createMethodHookDecorator();
96
97
 
97
- export const onDisposeMetadataCollector = new MethodReflector('OnDisposeHook');
98
- export const onDispose = createMethodHookDecorator(onDisposeMetadataCollector);
98
+ export const onDisposeReflector = new MethodReflector('OnDisposeHook');
99
+ export const onDispose = onDisposeReflector.createMethodHookDecorator();
99
100
 
100
101
  class Logger {
101
102
  @onConstruct
@@ -116,7 +117,7 @@ const injector: IInjector = {
116
117
  const container = new Container(injector).setHook(new ContainerHook((instance) => {
117
118
  onDisposeMetadataCollector.invokeHooksOf(instance);
118
119
  }));
119
- container.register('ILogger', fromClass(Logger).build());
120
+ container.register('ILogger', ProviderBuilder.fromClass(Logger).build());
120
121
  const logger = container.resolve<ILogger>('ILogger');
121
122
  ```
122
123
 
@@ -1,7 +1,6 @@
1
1
  import { constructor } from '../utils/types';
2
2
  import { IProvider, ProviderKey, ResolveDependency } from './IProvider';
3
3
  import { Resolveable } from '../container/IContainer';
4
- import { IProviderReflector } from './IProviderReflector';
5
4
  export declare class Provider<T> implements IProvider<T> {
6
5
  private readonly resolveDependency;
7
6
  static fromClass<T>(value: constructor<T>): Provider<T>;
@@ -15,4 +14,4 @@ export declare class Provider<T> implements IProvider<T> {
15
14
  isValid(): boolean;
16
15
  getKeyOrFail(): ProviderKey;
17
16
  }
18
- export declare const createAddKeyDecorator: (metadataCollector: IProviderReflector) => (key: ProviderKey) => ClassDecorator;
17
+ export declare const forKey: (key: ProviderKey) => ClassDecorator;
@@ -25,8 +25,9 @@ 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.createAddKeyDecorator = exports.Provider = void 0;
28
+ exports.forKey = exports.Provider = void 0;
29
29
  var ProviderHasNoKeyError_1 = require("./ProviderHasNoKeyError");
30
+ var ProviderReflector_1 = require("./ProviderReflector");
30
31
  var Provider = /** @class */ (function () {
31
32
  function Provider(resolveDependency) {
32
33
  this.resolveDependency = resolveDependency;
@@ -73,14 +74,12 @@ var Provider = /** @class */ (function () {
73
74
  return Provider;
74
75
  }());
75
76
  exports.Provider = Provider;
76
- var createAddKeyDecorator = function (metadataCollector) {
77
- return function (key) {
78
- return function (target) {
79
- var targetClass = target;
80
- var fn = metadataCollector.findReducerOrCreate(targetClass);
81
- metadataCollector.addReducer(targetClass, function (builder) { return fn(builder).forKey(key); });
82
- };
77
+ var forKey = function (key) {
78
+ return function (target) {
79
+ var targetClass = target;
80
+ var fn = ProviderReflector_1.providerReflector.findReducerOrCreate(targetClass);
81
+ ProviderReflector_1.providerReflector.addReducer(targetClass, function (builder) { return fn(builder).forKey(key); });
83
82
  };
84
83
  };
85
- exports.createAddKeyDecorator = createAddKeyDecorator;
84
+ exports.forKey = forKey;
86
85
  //# sourceMappingURL=Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iEAAgE;AAGhE;IAWI,kBAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAVjE,kBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI;QAAxB,CAAyB,CAAC,CAAC;IACnE,CAAC;IAEM,kBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;IACrC,CAAC;IAMD,yBAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAK,GAAL;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,0BAAO,GAAP,UAAQ,SAAsB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,IAAI,CAAC,iBAAiB,OAAtB,IAAI,iBAAmB,SAAS,UAAK,IAAI,WAAE;IACtD,CAAC;IAED,0BAAO,GAAP,cAAiB,CAAC;IAElB,0BAAO,GAAP;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAY,GAAZ;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACL,eAAC;AAAD,CAAC,AAzCD,IAyCC;AAzCY,4BAAQ;AA2Cd,IAAM,qBAAqB,GAC9B,UAAC,iBAAqC;IACtC,OAAA,UAAC,GAAgB;QACjB,OAAA,UAAC,MAAM;YACH,IAAM,WAAW,GAAG,MAAqC,CAAC;YAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;QACpF,CAAC;IAJD,CAIC;AALD,CAKC,CAAC;AAPO,QAAA,qBAAqB,yBAO5B"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iEAAgE;AAEhE,yDAAwD;AAExD;IAWI,kBAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAVjE,kBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI;QAAxB,CAAyB,CAAC,CAAC;IACnE,CAAC;IAEM,kBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;IACrC,CAAC;IAMD,yBAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAK,GAAL;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,0BAAO,GAAP,UAAQ,SAAsB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,IAAI,CAAC,iBAAiB,OAAtB,IAAI,iBAAmB,SAAS,UAAK,IAAI,WAAE;IACtD,CAAC;IAED,0BAAO,GAAP,cAAiB,CAAC;IAElB,0BAAO,GAAP;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAY,GAAZ;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACL,eAAC;AAAD,CAAC,AAzCD,IAyCC;AAzCY,4BAAQ;AA2Cd,IAAM,MAAM,GACf,UAAC,GAAgB;IACjB,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;IACpF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,MAAM,UAMb"}
@@ -8,3 +8,4 @@ export declare class ProviderReflector implements IProviderReflector {
8
8
  findReducerOrCreate<T>(target: constructor<T>): ProviderReducer<T>;
9
9
  addReducer<T>(target: constructor<T>, reducer: ProviderReducer<T>): void;
10
10
  }
11
+ export declare const providerReflector: ProviderReflector;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProviderReflector = void 0;
3
+ exports.providerReflector = exports.ProviderReflector = void 0;
4
4
  var others_1 = require("../utils/others");
5
5
  var ProviderReflector = /** @class */ (function () {
6
6
  function ProviderReflector(metadataKey, createReducer) {
@@ -22,4 +22,5 @@ var ProviderReflector = /** @class */ (function () {
22
22
  return ProviderReflector;
23
23
  }());
24
24
  exports.ProviderReflector = ProviderReflector;
25
+ exports.providerReflector = ProviderReflector.create();
25
26
  //# sourceMappingURL=ProviderReflector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderReflector.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderReflector.ts"],"names":[],"mappings":";;;AAEA,0CAAqC;AAErC;IAKI,2BAAoB,WAA4B,EAAU,aAA6C;QAAnF,gBAAW,GAAX,WAAW,CAAiB;QAAU,kBAAa,GAAb,aAAa,CAAgC;IAAG,CAAC;IAJpG,wBAAM,GAAb;QACI,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,cAAM,OAAA,WAAE,EAAF,CAAE,CAAC,CAAC;IACtE,CAAC;IAID,+CAAmB,GAAnB,UAAuB,MAAsB;QACzC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YAChD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,sCAAU,GAAV,UAAc,MAAsB,EAAE,OAA2B;QAC7D,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACL,wBAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,8CAAiB"}
1
+ {"version":3,"file":"ProviderReflector.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderReflector.ts"],"names":[],"mappings":";;;AAEA,0CAAqC;AAErC;IAKI,2BAAoB,WAA4B,EAAU,aAA6C;QAAnF,gBAAW,GAAX,WAAW,CAAiB;QAAU,kBAAa,GAAb,aAAa,CAAgC;IAAG,CAAC;IAJpG,wBAAM,GAAb;QACI,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,cAAM,OAAA,WAAE,EAAF,CAAE,CAAC,CAAC;IACtE,CAAC;IAID,+CAAmB,GAAnB,UAAuB,MAAsB;QACzC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YAChD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,sCAAU,GAAV,UAAc,MAAsB,EAAE,OAA2B;QAC7D,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACL,wBAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,8CAAiB;AAmBjB,QAAA,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC"}
@@ -1,5 +1,3 @@
1
1
  export interface IMethodReflector {
2
- addHook<GInstance extends Object>(target: GInstance, propertyKey: string | symbol): void;
3
2
  invokeHooksOf<GInstance extends Object>(target: GInstance): void;
4
3
  }
5
- export declare function createMethodHookDecorator(metadata: IMethodReflector): MethodDecorator;
@@ -1,11 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMethodHookDecorator = void 0;
4
- function createMethodHookDecorator(metadata) {
5
- return function (target, propertyKey) {
6
- // eslint-disable-next-line @typescript-eslint/ban-types
7
- metadata.addHook(target, propertyKey);
8
- };
9
- }
10
- exports.createMethodHookDecorator = createMethodHookDecorator;
11
3
  //# sourceMappingURL=IMethodReflector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/IMethodReflector.ts"],"names":[],"mappings":";;;AAQA,SAAgB,yBAAyB,CAAC,QAA0B;IAChE,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
+ {"version":3,"file":"IMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/IMethodReflector.ts"],"names":[],"mappings":""}
@@ -2,7 +2,8 @@ import { IMethodReflector } from './IMethodReflector';
2
2
  export declare class MethodReflector implements IMethodReflector {
3
3
  readonly hookKey: string | symbol;
4
4
  constructor(hookKey: string | symbol);
5
- addHook<GInstance extends Object>(target: GInstance, propertyKey: string | symbol): void;
5
+ private addHook;
6
6
  invokeHooksOf<GInstance extends Object>(target: GInstance): void;
7
7
  private static getTargetId;
8
+ createMethodHookDecorator(): MethodDecorator;
8
9
  }
@@ -72,6 +72,13 @@ var MethodReflector = /** @class */ (function () {
72
72
  MethodReflector.getTargetId = function (target) {
73
73
  return target.constructor;
74
74
  };
75
+ MethodReflector.prototype.createMethodHookDecorator = function () {
76
+ var _this = this;
77
+ return function (target, propertyKey) {
78
+ // eslint-disable-next-line @typescript-eslint/ban-types
79
+ _this.addHook(target, propertyKey);
80
+ };
81
+ };
75
82
  return MethodReflector;
76
83
  }());
77
84
  exports.MethodReflector = MethodReflector;
@@ -1 +1 @@
1
- {"version":3,"file":"MethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/MethodReflector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IACI,yBAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,iCAAO,GAAP,UAAkC,MAAiB,EAAE,WAA4B;QAC7E,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,uCAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,2BAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IACL,sBAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,0CAAe"}
1
+ {"version":3,"file":"MethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/MethodReflector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IACI,yBAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IAChD,iCAAO,GAAf,UAA0C,MAAiB,EAAE,WAA4B;QACrF,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,uCAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,2BAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,mDAAyB,GAAzB;QAAA,iBAKC;QAJG,OAAO,UAAC,MAAM,EAAE,WAAW;YACvB,wDAAwD;YACxD,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC;IACL,sBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,0CAAe"}
package/cjm/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { constructor } from './core/utils/types';
2
- import { ProviderBuilder } from './providers/ProviderBuilder';
3
- import { ResolveDependency } from './core/provider/IProvider';
4
1
  import { IContainer, InjectionToken } from './core/container/IContainer';
5
2
  export { ContainerHook } from './hooks/ContainerHook';
6
3
  export { ProviderReducer } from './core/provider/IProviderReflector';
@@ -21,7 +18,7 @@ export { ArgsProvider, ArgsFn, createArgsFnDecorator } from './providers/ArgsPro
21
18
  export { IContainerHook } from './core/container/IContainerHook';
22
19
  export { TaggedProvider } from './providers/TaggedProvider';
23
20
  export { ProxyInjector } from './injectors/ProxyInjector';
24
- export { LevelProvider, createLevelDecorator } from './providers/LevelProvider';
21
+ export { LevelProvider, perLevel } from './providers/LevelProvider';
25
22
  export { IMockRepository } from './automock/IMockRepository';
26
23
  export { AutoMockedContainer } from './automock/AutoMockedContainer';
27
24
  export { SingletonProvider } from './providers/SingletonProvider';
@@ -31,14 +28,7 @@ export { ProviderReflector } from './core/provider/ProviderReflector';
31
28
  export { IDisposable } from './core/utils/types';
32
29
  export { ProviderKey } from './core/provider/IProvider';
33
30
  export { isProviderKey } from './core/provider/IProvider';
34
- export { createTagsDecorator } from './providers/TaggedProvider';
35
- export { createSingletonDecorator } from './providers/SingletonProvider';
36
- export { createAddKeyDecorator } from './core/provider/Provider';
37
- export declare const forKey: (key: import("./core/provider/IProvider").ProviderKey) => ClassDecorator;
38
- export declare const asSingleton: ClassDecorator;
39
- export declare const perTags: (...tags: string[]) => ClassDecorator;
40
- export declare function fromClass<T>(value: constructor<T>): ProviderBuilder<T>;
41
- export declare function fromValue<T>(value: T): ProviderBuilder<T>;
42
- export declare function fromFn<T>(fn: ResolveDependency<T>): ProviderBuilder<T>;
43
- export { createMethodHookDecorator } from './hooks/IMethodReflector';
31
+ export { perTags } from './providers/TaggedProvider';
32
+ export { asSingleton } from './providers/SingletonProvider';
33
+ export { forKey } from './core/provider/Provider';
44
34
  export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
package/cjm/index.js CHANGED
@@ -25,12 +25,7 @@ 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.by = exports.createMethodHookDecorator = exports.fromFn = exports.fromValue = exports.fromClass = exports.perTags = exports.asSingleton = exports.forKey = exports.createAddKeyDecorator = exports.createSingletonDecorator = exports.createTagsDecorator = exports.isProviderKey = exports.ProviderReflector = exports.ProviderBuilder = exports.SingletonProvider = exports.AutoMockedContainer = exports.createLevelDecorator = exports.LevelProvider = exports.ProxyInjector = exports.TaggedProvider = exports.createArgsFnDecorator = exports.ArgsProvider = exports.Provider = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.MethodReflector = exports.SimpleInjector = exports.Container = exports.ContainerHook = void 0;
29
- var Provider_1 = require("./core/provider/Provider");
30
- var ProviderReflector_1 = require("./core/provider/ProviderReflector");
31
- var SingletonProvider_1 = require("./providers/SingletonProvider");
32
- var TaggedProvider_1 = require("./providers/TaggedProvider");
33
- var ProviderBuilder_1 = require("./providers/ProviderBuilder");
28
+ exports.by = exports.forKey = exports.asSingleton = exports.perTags = exports.isProviderKey = exports.ProviderReflector = exports.ProviderBuilder = exports.SingletonProvider = exports.AutoMockedContainer = exports.perLevel = exports.LevelProvider = exports.ProxyInjector = exports.TaggedProvider = exports.createArgsFnDecorator = exports.ArgsProvider = exports.Provider = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.MethodReflector = exports.SimpleInjector = exports.Container = exports.ContainerHook = void 0;
34
29
  var ContainerHook_1 = require("./hooks/ContainerHook");
35
30
  Object.defineProperty(exports, "ContainerHook", { enumerable: true, get: function () { return ContainerHook_1.ContainerHook; } });
36
31
  var Container_1 = require("./core/container/Container");
@@ -45,52 +40,34 @@ var MethodNotImplementedError_1 = require("./core/utils/MethodNotImplementedErro
45
40
  Object.defineProperty(exports, "MethodNotImplementedError", { enumerable: true, get: function () { return MethodNotImplementedError_1.MethodNotImplementedError; } });
46
41
  var ContainerDisposedError_1 = require("./core/container/ContainerDisposedError");
47
42
  Object.defineProperty(exports, "ContainerDisposedError", { enumerable: true, get: function () { return ContainerDisposedError_1.ContainerDisposedError; } });
48
- var Provider_2 = require("./core/provider/Provider");
49
- Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Provider_2.Provider; } });
43
+ var Provider_1 = require("./core/provider/Provider");
44
+ Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Provider_1.Provider; } });
50
45
  var ArgsProvider_1 = require("./providers/ArgsProvider");
51
46
  Object.defineProperty(exports, "ArgsProvider", { enumerable: true, get: function () { return ArgsProvider_1.ArgsProvider; } });
52
47
  Object.defineProperty(exports, "createArgsFnDecorator", { enumerable: true, get: function () { return ArgsProvider_1.createArgsFnDecorator; } });
53
- var TaggedProvider_2 = require("./providers/TaggedProvider");
54
- Object.defineProperty(exports, "TaggedProvider", { enumerable: true, get: function () { return TaggedProvider_2.TaggedProvider; } });
48
+ var TaggedProvider_1 = require("./providers/TaggedProvider");
49
+ Object.defineProperty(exports, "TaggedProvider", { enumerable: true, get: function () { return TaggedProvider_1.TaggedProvider; } });
55
50
  var ProxyInjector_1 = require("./injectors/ProxyInjector");
56
51
  Object.defineProperty(exports, "ProxyInjector", { enumerable: true, get: function () { return ProxyInjector_1.ProxyInjector; } });
57
52
  var LevelProvider_1 = require("./providers/LevelProvider");
58
53
  Object.defineProperty(exports, "LevelProvider", { enumerable: true, get: function () { return LevelProvider_1.LevelProvider; } });
59
- Object.defineProperty(exports, "createLevelDecorator", { enumerable: true, get: function () { return LevelProvider_1.createLevelDecorator; } });
54
+ Object.defineProperty(exports, "perLevel", { enumerable: true, get: function () { return LevelProvider_1.perLevel; } });
60
55
  var AutoMockedContainer_1 = require("./automock/AutoMockedContainer");
61
56
  Object.defineProperty(exports, "AutoMockedContainer", { enumerable: true, get: function () { return AutoMockedContainer_1.AutoMockedContainer; } });
62
- var SingletonProvider_2 = require("./providers/SingletonProvider");
63
- Object.defineProperty(exports, "SingletonProvider", { enumerable: true, get: function () { return SingletonProvider_2.SingletonProvider; } });
64
- var ProviderBuilder_2 = require("./providers/ProviderBuilder");
65
- Object.defineProperty(exports, "ProviderBuilder", { enumerable: true, get: function () { return ProviderBuilder_2.ProviderBuilder; } });
66
- var ProviderReflector_2 = require("./core/provider/ProviderReflector");
67
- Object.defineProperty(exports, "ProviderReflector", { enumerable: true, get: function () { return ProviderReflector_2.ProviderReflector; } });
57
+ var SingletonProvider_1 = require("./providers/SingletonProvider");
58
+ Object.defineProperty(exports, "SingletonProvider", { enumerable: true, get: function () { return SingletonProvider_1.SingletonProvider; } });
59
+ var ProviderBuilder_1 = require("./providers/ProviderBuilder");
60
+ Object.defineProperty(exports, "ProviderBuilder", { enumerable: true, get: function () { return ProviderBuilder_1.ProviderBuilder; } });
61
+ var ProviderReflector_1 = require("./core/provider/ProviderReflector");
62
+ Object.defineProperty(exports, "ProviderReflector", { enumerable: true, get: function () { return ProviderReflector_1.ProviderReflector; } });
68
63
  var IProvider_1 = require("./core/provider/IProvider");
69
64
  Object.defineProperty(exports, "isProviderKey", { enumerable: true, get: function () { return IProvider_1.isProviderKey; } });
70
- var TaggedProvider_3 = require("./providers/TaggedProvider");
71
- Object.defineProperty(exports, "createTagsDecorator", { enumerable: true, get: function () { return TaggedProvider_3.createTagsDecorator; } });
72
- var SingletonProvider_3 = require("./providers/SingletonProvider");
73
- Object.defineProperty(exports, "createSingletonDecorator", { enumerable: true, get: function () { return SingletonProvider_3.createSingletonDecorator; } });
74
- var Provider_3 = require("./core/provider/Provider");
75
- Object.defineProperty(exports, "createAddKeyDecorator", { enumerable: true, get: function () { return Provider_3.createAddKeyDecorator; } });
76
- var providerReflector = ProviderReflector_1.ProviderReflector.create();
77
- exports.forKey = (0, Provider_1.createAddKeyDecorator)(providerReflector);
78
- exports.asSingleton = (0, SingletonProvider_1.createSingletonDecorator)(providerReflector);
79
- exports.perTags = (0, TaggedProvider_1.createTagsDecorator)(providerReflector);
80
- function fromClass(value) {
81
- return new ProviderBuilder_1.ProviderBuilder(Provider_1.Provider.fromClass(value)).map(providerReflector.findReducerOrCreate(value));
82
- }
83
- exports.fromClass = fromClass;
84
- function fromValue(value) {
85
- return new ProviderBuilder_1.ProviderBuilder(Provider_1.Provider.fromValue(value));
86
- }
87
- exports.fromValue = fromValue;
88
- function fromFn(fn) {
89
- return new ProviderBuilder_1.ProviderBuilder(new Provider_1.Provider(fn));
90
- }
91
- exports.fromFn = fromFn;
92
- var IMethodReflector_1 = require("./hooks/IMethodReflector");
93
- Object.defineProperty(exports, "createMethodHookDecorator", { enumerable: true, get: function () { return IMethodReflector_1.createMethodHookDecorator; } });
65
+ var TaggedProvider_2 = require("./providers/TaggedProvider");
66
+ Object.defineProperty(exports, "perTags", { enumerable: true, get: function () { return TaggedProvider_2.perTags; } });
67
+ var SingletonProvider_2 = require("./providers/SingletonProvider");
68
+ Object.defineProperty(exports, "asSingleton", { enumerable: true, get: function () { return SingletonProvider_2.asSingleton; } });
69
+ var Provider_2 = require("./core/provider/Provider");
70
+ Object.defineProperty(exports, "forKey", { enumerable: true, get: function () { return Provider_2.forKey; } });
94
71
  var by = function (key) {
95
72
  var args = [];
96
73
  for (var _i = 1; _i < arguments.length; _i++) {
package/cjm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA2E;AAC3E,uEAAsE;AACtE,mEAAyE;AACzE,6DAAiE;AAEjE,+DAA8D;AAI9D,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAItB,wDAAuD;AAA9C,sGAAA,SAAS,OAAA;AAGlB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAExB,+EAA8E;AAArE,8HAAA,qBAAqB,OAAA;AAC9B,oFAAmF;AAA1E,sIAAA,yBAAyB,OAAA;AAClC,kFAAiF;AAAxE,gIAAA,sBAAsB,OAAA;AAC/B,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,yDAAuF;AAA9E,4GAAA,YAAY,OAAA;AAAU,qHAAA,qBAAqB,OAAA;AAEpD,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,2DAAgF;AAAvE,8GAAA,aAAa,OAAA;AAAE,qHAAA,oBAAoB,OAAA;AAE5C,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AAExB,uEAAsE;AAA7D,sHAAA,iBAAiB,OAAA;AAG1B,uDAA0D;AAAjD,0GAAA,aAAa,OAAA;AACtB,6DAAiE;AAAxD,qHAAA,mBAAmB,OAAA;AAC5B,mEAAyE;AAAhE,6HAAA,wBAAwB,OAAA;AACjC,qDAAiE;AAAxD,iHAAA,qBAAqB,OAAA;AAE9B,IAAM,iBAAiB,GAAG,qCAAiB,CAAC,MAAM,EAAE,CAAC;AACxC,QAAA,MAAM,GAAG,IAAA,gCAAqB,EAAC,iBAAiB,CAAC,CAAC;AAElD,QAAA,WAAW,GAAG,IAAA,4CAAwB,EAAC,iBAAiB,CAAC,CAAC;AAC1D,QAAA,OAAO,GAAG,IAAA,oCAAmB,EAAC,iBAAiB,CAAC,CAAC;AAE9D,SAAgB,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,iCAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5G,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,iCAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAFD,8BAEC;AAED,SAAgB,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,iCAAe,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,wBAEC;AAED,6DAAqE;AAA5D,6HAAA,yBAAyB,OAAA;AAE3B,IAAM,EAAE,GACX,UAAI,GAAsB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAC9C,OAAA,UAAC,CAAa;QACV,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAY,GAAG,UAAK,IAAI;IAAzB,CAA0B;AAD9B,CAC8B,CAAC;AAHtB,QAAA,EAAE,MAGoB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAItB,wDAAuD;AAA9C,sGAAA,SAAS,OAAA;AAGlB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAExB,+EAA8E;AAArE,8HAAA,qBAAqB,OAAA;AAC9B,oFAAmF;AAA1E,sIAAA,yBAAyB,OAAA;AAClC,kFAAiF;AAAxE,gIAAA,sBAAsB,OAAA;AAC/B,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,yDAAuF;AAA9E,4GAAA,YAAY,OAAA;AAAU,qHAAA,qBAAqB,OAAA;AAEpD,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,2DAAoE;AAA3D,8GAAA,aAAa,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAEhC,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AAExB,uEAAsE;AAA7D,sHAAA,iBAAiB,OAAA;AAG1B,uDAA0D;AAAjD,0GAAA,aAAa,OAAA;AACtB,6DAAqD;AAA5C,yGAAA,OAAO,OAAA;AAChB,mEAA4D;AAAnD,gHAAA,WAAW,OAAA;AACpB,qDAAkD;AAAzC,kGAAA,MAAM,OAAA;AAER,IAAM,EAAE,GACX,UAAI,GAAsB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAC9C,OAAA,UAAC,CAAa;QACV,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAY,GAAG,UAAK,IAAI;IAAzB,CAA0B;AAD9B,CAC8B,CAAC;AAHtB,QAAA,EAAE,MAGoB"}
@@ -1,6 +1,5 @@
1
1
  import { IProvider, ScopeOptions } from '../core/provider/IProvider';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
- import { IProviderReflector } from '../core/provider/IProviderReflector';
4
3
  export declare class LevelProvider<T> extends ProviderDecorator<T> {
5
4
  private provider;
6
5
  private readonly range;
@@ -8,4 +7,4 @@ export declare class LevelProvider<T> extends ProviderDecorator<T> {
8
7
  clone(): LevelProvider<T>;
9
8
  isValid(filters: ScopeOptions): boolean;
10
9
  }
11
- export declare const createLevelDecorator: (metadataCollector: IProviderReflector) => (value: number) => ClassDecorator;
10
+ export declare const perLevel: (value: number) => ClassDecorator;
@@ -31,8 +31,9 @@ var __read = (this && this.__read) || function (o, n) {
31
31
  return ar;
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.createLevelDecorator = exports.LevelProvider = void 0;
34
+ exports.perLevel = exports.LevelProvider = void 0;
35
35
  var ProviderDecorator_1 = require("../core/provider/ProviderDecorator");
36
+ var ProviderReflector_1 = require("../core/provider/ProviderReflector");
36
37
  var LevelProvider = /** @class */ (function (_super) {
37
38
  __extends(LevelProvider, _super);
38
39
  function LevelProvider(provider, range) {
@@ -52,14 +53,12 @@ var LevelProvider = /** @class */ (function (_super) {
52
53
  return LevelProvider;
53
54
  }(ProviderDecorator_1.ProviderDecorator));
54
55
  exports.LevelProvider = LevelProvider;
55
- var createLevelDecorator = function (metadataCollector) {
56
- return function (value) {
57
- return function (target) {
58
- var targetClass = target;
59
- var fn = metadataCollector.findReducerOrCreate(targetClass);
60
- metadataCollector.addReducer(targetClass, function (builder) { return fn(builder).forLevel(value); });
61
- };
56
+ var perLevel = function (value) {
57
+ return function (target) {
58
+ var targetClass = target;
59
+ var fn = ProviderReflector_1.providerReflector.findReducerOrCreate(targetClass);
60
+ ProviderReflector_1.providerReflector.addReducer(targetClass, function (builder) { return fn(builder).forLevel(value); });
62
61
  };
63
62
  };
64
- exports.createLevelDecorator = createLevelDecorator;
63
+ exports.perLevel = perLevel;
65
64
  //# sourceMappingURL=LevelProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAIvE;IAAsC,iCAAoB;IACtD,uBAAoB,QAAsB,EAAmB,KAAuB;QAApF,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,WAAK,GAAL,KAAK,CAAkB;;IAEpF,CAAC;IAED,6BAAK,GAAL;QACI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,+BAAO,GAAP,UAAQ,OAAqB;QACjB,IAAA,KAAK,GAAK,OAAO,MAAZ,CAAa;QACpB,IAAA,KAAA,OAAa,IAAI,CAAC,KAAK,IAAA,EAAtB,IAAI,QAAA,EAAE,EAAE,QAAc,CAAC;QAC9B,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IACL,oBAAC;AAAD,CAAC,AAdD,CAAsC,qCAAiB,GActD;AAdY,sCAAa;AAgBnB,IAAM,oBAAoB,GAC7B,UAAC,iBAAqC;IACtC,OAAA,UAAC,KAAa;QACd,OAAA,UAAC,MAAM;YACH,IAAM,WAAW,GAAG,MAAqC,CAAC;YAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;QACxF,CAAC;IAJD,CAIC;AALD,CAKC,CAAC;AAPO,QAAA,oBAAoB,wBAO3B"}
1
+ {"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAEvE,wEAAuE;AAEvE;IAAsC,iCAAoB;IACtD,uBAAoB,QAAsB,EAAmB,KAAuB;QAApF,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,WAAK,GAAL,KAAK,CAAkB;;IAEpF,CAAC;IAED,6BAAK,GAAL;QACI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,+BAAO,GAAP,UAAQ,OAAqB;QACjB,IAAA,KAAK,GAAK,OAAO,MAAZ,CAAa;QACpB,IAAA,KAAA,OAAa,IAAI,CAAC,KAAK,IAAA,EAAtB,IAAI,QAAA,EAAE,EAAE,QAAc,CAAC;QAC9B,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IACL,oBAAC;AAAD,CAAC,AAdD,CAAsC,qCAAiB,GActD;AAdY,sCAAa;AAgBnB,IAAM,QAAQ,GACjB,UAAC,KAAa;IACd,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACxF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,QAAQ,YAMf"}
@@ -1,8 +1,12 @@
1
1
  import { IProvider, ProviderKey, Tag } from '../core/provider/IProvider';
2
2
  import { ProviderReducer } from '../core/provider/IProviderReflector';
3
3
  import { ArgsFn } from './ArgsProvider';
4
+ import { constructor } from '../core/utils/types';
4
5
  export declare class ProviderBuilder<T> {
5
6
  private provider;
7
+ static fromClass<T>(value: constructor<T>): ProviderBuilder<T>;
8
+ static fromValue<T>(value: T): ProviderBuilder<T>;
9
+ static fromFn<T>(fn: (...args: any[]) => T): ProviderBuilder<T>;
6
10
  constructor(provider: IProvider<T>);
7
11
  withArgs(...extraArgs: any[]): this;
8
12
  withArgsFn(argsFn: ArgsFn): this;
@@ -5,10 +5,21 @@ var SingletonProvider_1 = require("./SingletonProvider");
5
5
  var TaggedProvider_1 = require("./TaggedProvider");
6
6
  var LevelProvider_1 = require("./LevelProvider");
7
7
  var ArgsProvider_1 = require("./ArgsProvider");
8
+ var Provider_1 = require("../core/provider/Provider");
9
+ var ProviderReflector_1 = require("../core/provider/ProviderReflector");
8
10
  var ProviderBuilder = /** @class */ (function () {
9
11
  function ProviderBuilder(provider) {
10
12
  this.provider = provider;
11
13
  }
14
+ ProviderBuilder.fromClass = function (value) {
15
+ return new ProviderBuilder(Provider_1.Provider.fromClass(value)).map(ProviderReflector_1.providerReflector.findReducerOrCreate(value));
16
+ };
17
+ ProviderBuilder.fromValue = function (value) {
18
+ return new ProviderBuilder(Provider_1.Provider.fromValue(value));
19
+ };
20
+ ProviderBuilder.fromFn = function (fn) {
21
+ return new ProviderBuilder(new Provider_1.Provider(fn));
22
+ };
12
23
  ProviderBuilder.prototype.withArgs = function () {
13
24
  var extraArgs = [];
14
25
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":";;;AACA,yDAAwD;AACxD,mDAAkD;AAClD,iDAAgD;AAEhD,+CAAsD;AAEtD;IACI,yBAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,kCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6BAAG,GAAH,UAAI,OAA2B;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,iCAAO,GAAP;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAQ,GAAR,UAAS,KAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAK,GAAL;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACL,sBAAC;AAAD,CAAC,AAxCD,IAwCC;AAxCY,0CAAe"}
1
+ {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":";;;AACA,yDAAwD;AACxD,mDAAkD;AAClD,iDAAgD;AAEhD,+CAAsD;AACtD,sDAAqD;AAErD,wEAAuE;AAEvE;IAaI,yBAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAZvC,yBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,eAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,qCAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEM,yBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,eAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,sBAAM,GAAb,UAAiB,EAAyB;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAID,kCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6BAAG,GAAH,UAAI,OAA2B;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,iCAAO,GAAP;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAQ,GAAR,UAAS,KAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAK,GAAL;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACL,sBAAC;AAAD,CAAC,AApDD,IAoDC;AApDY,0CAAe"}
@@ -1,7 +1,6 @@
1
1
  import { Resolveable } from '../core/container/IContainer';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
3
  import { IProvider } from '../core/provider/IProvider';
4
- import { IProviderReflector } from '../core/provider/IProviderReflector';
5
4
  export declare class SingletonProvider<T> extends ProviderDecorator<T> {
6
5
  private readonly provider;
7
6
  private instance;
@@ -10,4 +9,4 @@ export declare class SingletonProvider<T> extends ProviderDecorator<T> {
10
9
  dispose(): void;
11
10
  resolve(container: Resolveable, ...args: any[]): T;
12
11
  }
13
- export declare const createSingletonDecorator: (metadataCollector: IProviderReflector) => ClassDecorator;
12
+ export declare const asSingleton: ClassDecorator;
@@ -40,9 +40,10 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
40
40
  return to.concat(ar || Array.prototype.slice.call(from));
41
41
  };
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.createSingletonDecorator = exports.SingletonProvider = void 0;
43
+ exports.asSingleton = exports.SingletonProvider = void 0;
44
44
  var types_1 = require("../core/utils/types");
45
45
  var ProviderDecorator_1 = require("../core/provider/ProviderDecorator");
46
+ var ProviderReflector_1 = require("../core/provider/ProviderReflector");
46
47
  var SingletonProvider = /** @class */ (function (_super) {
47
48
  __extends(SingletonProvider, _super);
48
49
  function SingletonProvider(provider) {
@@ -73,12 +74,10 @@ var SingletonProvider = /** @class */ (function (_super) {
73
74
  return SingletonProvider;
74
75
  }(ProviderDecorator_1.ProviderDecorator));
75
76
  exports.SingletonProvider = SingletonProvider;
76
- var createSingletonDecorator = function (metadataCollector) {
77
- return function (target) {
78
- var targetClass = target;
79
- var fn = metadataCollector.findReducerOrCreate(targetClass);
80
- metadataCollector.addReducer(targetClass, function (builder) { return fn(builder).asSingleton(); });
81
- };
77
+ var asSingleton = function (target) {
78
+ var targetClass = target;
79
+ var fn = ProviderReflector_1.providerReflector.findReducerOrCreate(targetClass);
80
+ ProviderReflector_1.providerReflector.addReducer(targetClass, function (builder) { return fn(builder).asSingleton(); });
82
81
  };
83
- exports.createSingletonDecorator = createSingletonDecorator;
82
+ exports.asSingleton = asSingleton;
84
83
  //# sourceMappingURL=SingletonProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAuD;AACvD,wEAAuE;AAIvE;IAA0C,qCAAoB;IAG1D,2BAA6B,QAAsB;QAAnD,YACI,kBAAM,QAAQ,CAAC,SAClB;QAF4B,cAAQ,GAAR,QAAQ,CAAc;QAF3C,cAAQ,GAAkB,IAAI,CAAC;;IAIvC,CAAC;IAED,iCAAK,GAAL;QACI,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,mCAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAM,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,0BAAC,SAAS,UAAK,IAAI,UAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAU,CAAC;IACpC,CAAC;IACL,wBAAC;AAAD,CAAC,AAxBD,CAA0C,qCAAiB,GAwB1D;AAxBY,8CAAiB;AA0BvB,IAAM,wBAAwB,GACjC,UAAC,iBAAqC;IACtC,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,CAAC;IACtF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,wBAAwB,4BAM/B"}
1
+ {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAuD;AACvD,wEAAuE;AAEvE,wEAAuE;AAEvE;IAA0C,qCAAoB;IAG1D,2BAA6B,QAAsB;QAAnD,YACI,kBAAM,QAAQ,CAAC,SAClB;QAF4B,cAAQ,GAAR,QAAQ,CAAc;QAF3C,cAAQ,GAAkB,IAAI,CAAC;;IAIvC,CAAC;IAED,iCAAK,GAAL;QACI,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,mCAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAM,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,0BAAC,SAAS,UAAK,IAAI,UAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAU,CAAC;IACpC,CAAC;IACL,wBAAC;AAAD,CAAC,AAxBD,CAA0C,qCAAiB,GAwB1D;AAxBY,8CAAiB;AA0BvB,IAAM,WAAW,GAAmB,UAAC,MAAM;IAC9C,IAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,CAAC;AACtF,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB"}
@@ -1,6 +1,5 @@
1
1
  import { IProvider, ScopeOptions, Tag } from '../core/provider/IProvider';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
- import { IProviderReflector } from '../core/provider/IProviderReflector';
4
3
  export declare class TaggedProvider<T> extends ProviderDecorator<T> {
5
4
  private provider;
6
5
  private readonly tags;
@@ -8,4 +7,4 @@ export declare class TaggedProvider<T> extends ProviderDecorator<T> {
8
7
  clone(): TaggedProvider<T>;
9
8
  isValid(filters: ScopeOptions): boolean;
10
9
  }
11
- export declare const createTagsDecorator: (metadataCollector: IProviderReflector) => (...tags: Tag[]) => ClassDecorator;
10
+ export declare const perTags: (...tags: Tag[]) => ClassDecorator;
@@ -40,8 +40,9 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
40
40
  return to.concat(ar || Array.prototype.slice.call(from));
41
41
  };
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.createTagsDecorator = exports.TaggedProvider = void 0;
43
+ exports.perTags = exports.TaggedProvider = void 0;
44
44
  var ProviderDecorator_1 = require("../core/provider/ProviderDecorator");
45
+ var ProviderReflector_1 = require("../core/provider/ProviderReflector");
45
46
  var TaggedProvider = /** @class */ (function (_super) {
46
47
  __extends(TaggedProvider, _super);
47
48
  function TaggedProvider(provider, tags) {
@@ -60,21 +61,19 @@ var TaggedProvider = /** @class */ (function (_super) {
60
61
  return TaggedProvider;
61
62
  }(ProviderDecorator_1.ProviderDecorator));
62
63
  exports.TaggedProvider = TaggedProvider;
63
- var createTagsDecorator = function (metadataCollector) {
64
- return function () {
65
- var tags = [];
66
- for (var _i = 0; _i < arguments.length; _i++) {
67
- tags[_i] = arguments[_i];
68
- }
69
- return function (target) {
70
- var targetClass = target;
71
- var fn = metadataCollector.findReducerOrCreate(targetClass);
72
- metadataCollector.addReducer(targetClass, function (builder) {
73
- var _a;
74
- return (_a = fn(builder)).forTags.apply(_a, __spreadArray([], __read(tags), false));
75
- });
76
- };
64
+ var perTags = function () {
65
+ var tags = [];
66
+ for (var _i = 0; _i < arguments.length; _i++) {
67
+ tags[_i] = arguments[_i];
68
+ }
69
+ return function (target) {
70
+ var targetClass = target;
71
+ var fn = ProviderReflector_1.providerReflector.findReducerOrCreate(targetClass);
72
+ ProviderReflector_1.providerReflector.addReducer(targetClass, function (builder) {
73
+ var _a;
74
+ return (_a = fn(builder)).forTags.apply(_a, __spreadArray([], __read(tags), false));
75
+ });
77
76
  };
78
77
  };
79
- exports.createTagsDecorator = createTagsDecorator;
78
+ exports.perTags = perTags;
80
79
  //# sourceMappingURL=TaggedProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAIvE;IAAuC,kCAAoB;IACvD,wBAAoB,QAAsB,EAAmB,IAAW;QAAxE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAI,GAAJ,IAAI,CAAO;;IAExE,CAAC;IAED,8BAAK,GAAL;QACI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,gCAAO,GAAP,UAAQ,OAAqB;QACjB,IAAA,IAAI,GAAK,OAAO,KAAZ,CAAa;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;IACL,qBAAC;AAAD,CAAC,AAbD,CAAuC,qCAAiB,GAavD;AAbY,wCAAc;AAepB,IAAM,mBAAmB,GAC5B,UAAC,iBAAqC;IACtC,OAAA;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACf,OAAA,UAAC,MAAM;YACH,IAAM,WAAW,GAAG,MAAqC,CAAC;YAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO;;gBAAK,OAAA,CAAA,KAAA,EAAE,CAAC,OAAO,CAAC,CAAA,CAAC,OAAO,oCAAI,IAAI;YAA3B,CAA4B,CAAC,CAAC;QACzF,CAAC;IAJD,CAIC;AALD,CAKC,CAAC;AAPO,QAAA,mBAAmB,uBAO1B"}
1
+ {"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAEvE,wEAAuE;AAEvE;IAAuC,kCAAoB;IACvD,wBAAoB,QAAsB,EAAmB,IAAW;QAAxE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAI,GAAJ,IAAI,CAAO;;IAExE,CAAC;IAED,8BAAK,GAAL;QACI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,gCAAO,GAAP,UAAQ,OAAqB;QACjB,IAAA,IAAI,GAAK,OAAO,KAAZ,CAAa;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;IACL,qBAAC;AAAD,CAAC,AAbD,CAAuC,qCAAiB,GAavD;AAbY,wCAAc;AAepB,IAAM,OAAO,GAChB;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACf,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO;;YAAK,OAAA,CAAA,KAAA,EAAE,CAAC,OAAO,CAAC,CAAA,CAAC,OAAO,oCAAI,IAAI;QAA3B,CAA4B,CAAC,CAAC;IACzF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,OAAO,WAMd"}
@@ -1,7 +1,6 @@
1
1
  import { constructor } from '../utils/types';
2
2
  import { IProvider, ProviderKey, ResolveDependency } from './IProvider';
3
3
  import { Resolveable } from '../container/IContainer';
4
- import { IProviderReflector } from './IProviderReflector';
5
4
  export declare class Provider<T> implements IProvider<T> {
6
5
  private readonly resolveDependency;
7
6
  static fromClass<T>(value: constructor<T>): Provider<T>;
@@ -15,4 +14,4 @@ export declare class Provider<T> implements IProvider<T> {
15
14
  isValid(): boolean;
16
15
  getKeyOrFail(): ProviderKey;
17
16
  }
18
- export declare const createAddKeyDecorator: (metadataCollector: IProviderReflector) => (key: ProviderKey) => ClassDecorator;
17
+ export declare const forKey: (key: ProviderKey) => ClassDecorator;
@@ -1,4 +1,5 @@
1
1
  import { ProviderHasNoKeyError } from './ProviderHasNoKeyError';
2
+ import { providerReflector } from './ProviderReflector';
2
3
  export class Provider {
3
4
  constructor(resolveDependency) {
4
5
  this.resolveDependency = resolveDependency;
@@ -33,9 +34,9 @@ export class Provider {
33
34
  return this.key;
34
35
  }
35
36
  }
36
- export const createAddKeyDecorator = (metadataCollector) => (key) => (target) => {
37
+ export const forKey = (key) => (target) => {
37
38
  const targetClass = target;
38
- const fn = metadataCollector.findReducerOrCreate(targetClass);
39
- metadataCollector.addReducer(targetClass, (builder) => fn(builder).forKey(key));
39
+ const fn = providerReflector.findReducerOrCreate(targetClass);
40
+ providerReflector.addReducer(targetClass, (builder) => fn(builder).forKey(key));
40
41
  };
41
42
  //# sourceMappingURL=Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,OAAO,QAAQ;IAWjB,YAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAVxE,MAAM,CAAC,SAAS,CAAI,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAMD,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,SAAsB,EAAE,GAAG,IAAW;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,OAAO;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,qBAAqB,GAC9B,CAAC,iBAAqC,EAAE,EAAE,CAC1C,CAAC,GAAgB,EAAkB,EAAE,CACrC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,OAAO,QAAQ;IAWjB,YAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAVxE,MAAM,CAAC,SAAS,CAAI,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAMD,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,SAAsB,EAAE,GAAG,IAAW;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,OAAO;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,MAAM,GACf,CAAC,GAAgB,EAAkB,EAAE,CACrC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC"}
@@ -8,3 +8,4 @@ export declare class ProviderReflector implements IProviderReflector {
8
8
  findReducerOrCreate<T>(target: constructor<T>): ProviderReducer<T>;
9
9
  addReducer<T>(target: constructor<T>, reducer: ProviderReducer<T>): void;
10
10
  }
11
+ export declare const providerReflector: ProviderReflector;
@@ -17,4 +17,5 @@ export class ProviderReflector {
17
17
  Reflect.defineMetadata(this.metadataKey, reducer, target);
18
18
  }
19
19
  }
20
+ export const providerReflector = ProviderReflector.create();
20
21
  //# sourceMappingURL=ProviderReflector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderReflector.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderReflector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,OAAO,iBAAiB;IAK1B,YAAoB,WAA4B,EAAU,aAA6C;QAAnF,gBAAW,GAAX,WAAW,CAAiB;QAAU,kBAAa,GAAb,aAAa,CAAgC;IAAG,CAAC;IAJ3G,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAID,mBAAmB,CAAI,MAAsB;QACzC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YAChD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,UAAU,CAAI,MAAsB,EAAE,OAA2B;QAC7D,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;CACJ"}
1
+ {"version":3,"file":"ProviderReflector.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderReflector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,OAAO,iBAAiB;IAK1B,YAAoB,WAA4B,EAAU,aAA6C;QAAnF,gBAAW,GAAX,WAAW,CAAiB;QAAU,kBAAa,GAAb,aAAa,CAAgC;IAAG,CAAC;IAJ3G,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAID,mBAAmB,CAAI,MAAsB;QACzC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YAChD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,UAAU,CAAI,MAAsB,EAAE,OAA2B;QAC7D,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC"}
@@ -1,5 +1,3 @@
1
1
  export interface IMethodReflector {
2
- addHook<GInstance extends Object>(target: GInstance, propertyKey: string | symbol): void;
3
2
  invokeHooksOf<GInstance extends Object>(target: GInstance): void;
4
3
  }
5
- export declare function createMethodHookDecorator(metadata: IMethodReflector): MethodDecorator;
@@ -1,7 +1,2 @@
1
- export function createMethodHookDecorator(metadata) {
2
- return (target, propertyKey) => {
3
- // eslint-disable-next-line @typescript-eslint/ban-types
4
- metadata.addHook(target, propertyKey);
5
- };
6
- }
1
+ export {};
7
2
  //# sourceMappingURL=IMethodReflector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/IMethodReflector.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,yBAAyB,CAAC,QAA0B;IAChE,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
+ {"version":3,"file":"IMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/IMethodReflector.ts"],"names":[],"mappings":""}
@@ -2,7 +2,8 @@ import { IMethodReflector } from './IMethodReflector';
2
2
  export declare class MethodReflector implements IMethodReflector {
3
3
  readonly hookKey: string | symbol;
4
4
  constructor(hookKey: string | symbol);
5
- addHook<GInstance extends Object>(target: GInstance, propertyKey: string | symbol): void;
5
+ private addHook;
6
6
  invokeHooksOf<GInstance extends Object>(target: GInstance): void;
7
7
  private static getTargetId;
8
+ createMethodHookDecorator(): MethodDecorator;
8
9
  }
@@ -22,5 +22,11 @@ export class MethodReflector {
22
22
  static getTargetId(target) {
23
23
  return target.constructor;
24
24
  }
25
+ createMethodHookDecorator() {
26
+ return (target, propertyKey) => {
27
+ // eslint-disable-next-line @typescript-eslint/ban-types
28
+ this.addHook(target, propertyKey);
29
+ };
30
+ }
25
31
  }
26
32
  //# sourceMappingURL=MethodReflector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/MethodReflector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IACxB,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QAC7E,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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
+ {"version":3,"file":"MethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/MethodReflector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IACxB,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IAChD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QACrF,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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;IAED,yBAAyB;QACrB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YAC3B,wDAAwD;YACxD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC;CACJ"}
package/esm/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { constructor } from './core/utils/types';
2
- import { ProviderBuilder } from './providers/ProviderBuilder';
3
- import { ResolveDependency } from './core/provider/IProvider';
4
1
  import { IContainer, InjectionToken } from './core/container/IContainer';
5
2
  export { ContainerHook } from './hooks/ContainerHook';
6
3
  export { ProviderReducer } from './core/provider/IProviderReflector';
@@ -21,7 +18,7 @@ export { ArgsProvider, ArgsFn, createArgsFnDecorator } from './providers/ArgsPro
21
18
  export { IContainerHook } from './core/container/IContainerHook';
22
19
  export { TaggedProvider } from './providers/TaggedProvider';
23
20
  export { ProxyInjector } from './injectors/ProxyInjector';
24
- export { LevelProvider, createLevelDecorator } from './providers/LevelProvider';
21
+ export { LevelProvider, perLevel } from './providers/LevelProvider';
25
22
  export { IMockRepository } from './automock/IMockRepository';
26
23
  export { AutoMockedContainer } from './automock/AutoMockedContainer';
27
24
  export { SingletonProvider } from './providers/SingletonProvider';
@@ -31,14 +28,7 @@ export { ProviderReflector } from './core/provider/ProviderReflector';
31
28
  export { IDisposable } from './core/utils/types';
32
29
  export { ProviderKey } from './core/provider/IProvider';
33
30
  export { isProviderKey } from './core/provider/IProvider';
34
- export { createTagsDecorator } from './providers/TaggedProvider';
35
- export { createSingletonDecorator } from './providers/SingletonProvider';
36
- export { createAddKeyDecorator } from './core/provider/Provider';
37
- export declare const forKey: (key: import("./core/provider/IProvider").ProviderKey) => ClassDecorator;
38
- export declare const asSingleton: ClassDecorator;
39
- export declare const perTags: (...tags: string[]) => ClassDecorator;
40
- export declare function fromClass<T>(value: constructor<T>): ProviderBuilder<T>;
41
- export declare function fromValue<T>(value: T): ProviderBuilder<T>;
42
- export declare function fromFn<T>(fn: ResolveDependency<T>): ProviderBuilder<T>;
43
- export { createMethodHookDecorator } from './hooks/IMethodReflector';
31
+ export { perTags } from './providers/TaggedProvider';
32
+ export { asSingleton } from './providers/SingletonProvider';
33
+ export { forKey } from './core/provider/Provider';
44
34
  export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
package/esm/index.js CHANGED
@@ -1,8 +1,3 @@
1
- import { createAddKeyDecorator, Provider } from './core/provider/Provider';
2
- import { ProviderReflector } from './core/provider/ProviderReflector';
3
- import { createSingletonDecorator } from './providers/SingletonProvider';
4
- import { createTagsDecorator } from './providers/TaggedProvider';
5
- import { ProviderBuilder } from './providers/ProviderBuilder';
6
1
  export { ContainerHook } from './hooks/ContainerHook';
7
2
  export { Container } from './core/container/Container';
8
3
  export { SimpleInjector } from './injectors/SimpleInjector';
@@ -14,28 +9,14 @@ export { Provider } from './core/provider/Provider';
14
9
  export { ArgsProvider, createArgsFnDecorator } from './providers/ArgsProvider';
15
10
  export { TaggedProvider } from './providers/TaggedProvider';
16
11
  export { ProxyInjector } from './injectors/ProxyInjector';
17
- export { LevelProvider, createLevelDecorator } from './providers/LevelProvider';
12
+ export { LevelProvider, perLevel } from './providers/LevelProvider';
18
13
  export { AutoMockedContainer } from './automock/AutoMockedContainer';
19
14
  export { SingletonProvider } from './providers/SingletonProvider';
20
15
  export { ProviderBuilder } from './providers/ProviderBuilder';
21
16
  export { ProviderReflector } from './core/provider/ProviderReflector';
22
17
  export { isProviderKey } from './core/provider/IProvider';
23
- export { createTagsDecorator } from './providers/TaggedProvider';
24
- export { createSingletonDecorator } from './providers/SingletonProvider';
25
- export { createAddKeyDecorator } from './core/provider/Provider';
26
- const providerReflector = ProviderReflector.create();
27
- export const forKey = createAddKeyDecorator(providerReflector);
28
- export const asSingleton = createSingletonDecorator(providerReflector);
29
- export const perTags = createTagsDecorator(providerReflector);
30
- export function fromClass(value) {
31
- return new ProviderBuilder(Provider.fromClass(value)).map(providerReflector.findReducerOrCreate(value));
32
- }
33
- export function fromValue(value) {
34
- return new ProviderBuilder(Provider.fromValue(value));
35
- }
36
- export function fromFn(fn) {
37
- return new ProviderBuilder(new Provider(fn));
38
- }
39
- export { createMethodHookDecorator } from './hooks/IMethodReflector';
18
+ export { perTags } from './providers/TaggedProvider';
19
+ export { asSingleton } from './providers/SingletonProvider';
20
+ export { forKey } from './core/provider/Provider';
40
21
  export const by = (key, ...args) => (l) => l.resolve(key, ...args);
41
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":"AAAA,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAI9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,MAAM,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAE9D,MAAM,UAAU,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,eAAe,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,CAAC,MAAM,EAAE,GACX,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,EAAE,CACd,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,MAAM,CAAC,MAAM,EAAE,GACX,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,EAAE,CACd,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { IProvider, ScopeOptions } from '../core/provider/IProvider';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
- import { IProviderReflector } from '../core/provider/IProviderReflector';
4
3
  export declare class LevelProvider<T> extends ProviderDecorator<T> {
5
4
  private provider;
6
5
  private readonly range;
@@ -8,4 +7,4 @@ export declare class LevelProvider<T> extends ProviderDecorator<T> {
8
7
  clone(): LevelProvider<T>;
9
8
  isValid(filters: ScopeOptions): boolean;
10
9
  }
11
- export declare const createLevelDecorator: (metadataCollector: IProviderReflector) => (value: number) => ClassDecorator;
10
+ export declare const perLevel: (value: number) => ClassDecorator;
@@ -1,4 +1,5 @@
1
1
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
2
+ import { providerReflector } from '../core/provider/ProviderReflector';
2
3
  export class LevelProvider extends ProviderDecorator {
3
4
  constructor(provider, range) {
4
5
  super(provider);
@@ -14,9 +15,9 @@ export class LevelProvider extends ProviderDecorator {
14
15
  return from <= level && level <= to && this.provider.isValid(filters);
15
16
  }
16
17
  }
17
- export const createLevelDecorator = (metadataCollector) => (value) => (target) => {
18
+ export const perLevel = (value) => (target) => {
18
19
  const targetClass = target;
19
- const fn = metadataCollector.findReducerOrCreate(targetClass);
20
- metadataCollector.addReducer(targetClass, (builder) => fn(builder).forLevel(value));
20
+ const fn = providerReflector.findReducerOrCreate(targetClass);
21
+ providerReflector.addReducer(targetClass, (builder) => fn(builder).forLevel(value));
21
22
  };
22
23
  //# sourceMappingURL=LevelProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAIvE,MAAM,OAAO,aAAiB,SAAQ,iBAAoB;IACtD,YAAoB,QAAsB,EAAmB,KAAuB;QAChF,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAK,GAAL,KAAK,CAAkB;IAEpF,CAAC;IAED,KAAK;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAqB;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1B,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,oBAAoB,GAC7B,CAAC,iBAAqC,EAAE,EAAE,CAC1C,CAAC,KAAa,EAAkB,EAAE,CAClC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC"}
1
+ {"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,aAAiB,SAAQ,iBAAoB;IACtD,YAAoB,QAAsB,EAAmB,KAAuB;QAChF,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAK,GAAL,KAAK,CAAkB;IAEpF,CAAC;IAED,KAAK;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAqB;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1B,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAC,KAAa,EAAkB,EAAE,CAClC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC"}
@@ -1,8 +1,12 @@
1
1
  import { IProvider, ProviderKey, Tag } from '../core/provider/IProvider';
2
2
  import { ProviderReducer } from '../core/provider/IProviderReflector';
3
3
  import { ArgsFn } from './ArgsProvider';
4
+ import { constructor } from '../core/utils/types';
4
5
  export declare class ProviderBuilder<T> {
5
6
  private provider;
7
+ static fromClass<T>(value: constructor<T>): ProviderBuilder<T>;
8
+ static fromValue<T>(value: T): ProviderBuilder<T>;
9
+ static fromFn<T>(fn: (...args: any[]) => T): ProviderBuilder<T>;
6
10
  constructor(provider: IProvider<T>);
7
11
  withArgs(...extraArgs: any[]): this;
8
12
  withArgsFn(argsFn: ArgsFn): this;
@@ -2,10 +2,21 @@ import { SingletonProvider } from './SingletonProvider';
2
2
  import { TaggedProvider } from './TaggedProvider';
3
3
  import { LevelProvider } from './LevelProvider';
4
4
  import { ArgsProvider } from './ArgsProvider';
5
+ import { Provider } from '../core/provider/Provider';
6
+ import { providerReflector } from '../core/provider/ProviderReflector';
5
7
  export class ProviderBuilder {
6
8
  constructor(provider) {
7
9
  this.provider = provider;
8
10
  }
11
+ static fromClass(value) {
12
+ return new ProviderBuilder(Provider.fromClass(value)).map(providerReflector.findReducerOrCreate(value));
13
+ }
14
+ static fromValue(value) {
15
+ return new ProviderBuilder(Provider.fromValue(value));
16
+ }
17
+ static fromFn(fn) {
18
+ return new ProviderBuilder(new Provider(fn));
19
+ }
9
20
  withArgs(...extraArgs) {
10
21
  this.provider = new ArgsProvider(this.provider, () => extraArgs);
11
22
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,OAAO,eAAe;IACxB,YAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,QAAQ,CAAC,GAAG,SAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAA2B;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,IAAW;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
1
+ {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,eAAe;IAaxB,YAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAZ9C,MAAM,CAAC,SAAS,CAAI,KAAqB;QACrC,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAQ;QACxB,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,MAAM,CAAI,EAAyB;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAID,QAAQ,CAAC,GAAG,SAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAA2B;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,IAAW;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
@@ -1,7 +1,6 @@
1
1
  import { Resolveable } from '../core/container/IContainer';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
3
  import { IProvider } from '../core/provider/IProvider';
4
- import { IProviderReflector } from '../core/provider/IProviderReflector';
5
4
  export declare class SingletonProvider<T> extends ProviderDecorator<T> {
6
5
  private readonly provider;
7
6
  private instance;
@@ -10,4 +9,4 @@ export declare class SingletonProvider<T> extends ProviderDecorator<T> {
10
9
  dispose(): void;
11
10
  resolve(container: Resolveable, ...args: any[]): T;
12
11
  }
13
- export declare const createSingletonDecorator: (metadataCollector: IProviderReflector) => ClassDecorator;
12
+ export declare const asSingleton: ClassDecorator;
@@ -1,5 +1,6 @@
1
1
  import { Box } from '../core/utils/types';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
+ import { providerReflector } from '../core/provider/ProviderReflector';
3
4
  export class SingletonProvider extends ProviderDecorator {
4
5
  constructor(provider) {
5
6
  super(provider);
@@ -21,9 +22,9 @@ export class SingletonProvider extends ProviderDecorator {
21
22
  return this.instance.value;
22
23
  }
23
24
  }
24
- export const createSingletonDecorator = (metadataCollector) => (target) => {
25
+ export const asSingleton = (target) => {
25
26
  const targetClass = target;
26
- const fn = metadataCollector.findReducerOrCreate(targetClass);
27
- metadataCollector.addReducer(targetClass, (builder) => fn(builder).asSingleton());
27
+ const fn = providerReflector.findReducerOrCreate(targetClass);
28
+ providerReflector.addReducer(targetClass, (builder) => fn(builder).asSingleton());
28
29
  };
29
30
  //# sourceMappingURL=SingletonProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/providers/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAe,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAIvE,MAAM,OAAO,iBAAqB,SAAQ,iBAAoB;IAG1D,YAA6B,QAAsB;QAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAc;QAF3C,aAAQ,GAAkB,IAAI,CAAC;IAIvC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,SAAsB,EAAE,GAAG,IAAW;QAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAU,CAAC;IACpC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,wBAAwB,GACjC,CAAC,iBAAqC,EAAkB,EAAE,CAC1D,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACtF,CAAC,CAAC"}
1
+ {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/providers/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAe,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,iBAAqB,SAAQ,iBAAoB;IAG1D,YAA6B,QAAsB;QAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAc;QAF3C,aAAQ,GAAkB,IAAI,CAAC;IAIvC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,SAAsB,EAAE,GAAG,IAAW;QAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAU,CAAC;IACpC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,WAAW,GAAmB,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACtF,CAAC,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { IProvider, ScopeOptions, Tag } from '../core/provider/IProvider';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
- import { IProviderReflector } from '../core/provider/IProviderReflector';
4
3
  export declare class TaggedProvider<T> extends ProviderDecorator<T> {
5
4
  private provider;
6
5
  private readonly tags;
@@ -8,4 +7,4 @@ export declare class TaggedProvider<T> extends ProviderDecorator<T> {
8
7
  clone(): TaggedProvider<T>;
9
8
  isValid(filters: ScopeOptions): boolean;
10
9
  }
11
- export declare const createTagsDecorator: (metadataCollector: IProviderReflector) => (...tags: Tag[]) => ClassDecorator;
10
+ export declare const perTags: (...tags: Tag[]) => ClassDecorator;
@@ -1,4 +1,5 @@
1
1
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
2
+ import { providerReflector } from '../core/provider/ProviderReflector';
2
3
  export class TaggedProvider extends ProviderDecorator {
3
4
  constructor(provider, tags) {
4
5
  super(provider);
@@ -13,9 +14,9 @@ export class TaggedProvider extends ProviderDecorator {
13
14
  return this.tags.some((t) => tags.includes(t)) && this.provider.isValid(filters);
14
15
  }
15
16
  }
16
- export const createTagsDecorator = (metadataCollector) => (...tags) => (target) => {
17
+ export const perTags = (...tags) => (target) => {
17
18
  const targetClass = target;
18
- const fn = metadataCollector.findReducerOrCreate(targetClass);
19
- metadataCollector.addReducer(targetClass, (builder) => fn(builder).forTags(...tags));
19
+ const fn = providerReflector.findReducerOrCreate(targetClass);
20
+ providerReflector.addReducer(targetClass, (builder) => fn(builder).forTags(...tags));
20
21
  };
21
22
  //# sourceMappingURL=TaggedProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAIvE,MAAM,OAAO,cAAkB,SAAQ,iBAAoB;IACvD,YAAoB,QAAsB,EAAmB,IAAW;QACpE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,SAAI,GAAJ,IAAI,CAAO;IAExE,CAAC;IAED,KAAK;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAqB;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,mBAAmB,GAC5B,CAAC,iBAAqC,EAAE,EAAE,CAC1C,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC"}
1
+ {"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,cAAkB,SAAQ,iBAAoB;IACvD,YAAoB,QAAsB,EAAmB,IAAW;QACpE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,SAAI,GAAJ,IAAI,CAAO;IAExE,CAAC;IAED,KAAK;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAqB;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,OAAO,GAChB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "15.0.0",
3
+ "version": "16.0.0",
4
4
  "description": "Typescript IoC container",
5
5
  "author": "ibabkin <igba14@gmail.com>",
6
6
  "homepage": "https://github.com/IgorBabkin/ts-ioc-container/tree/master/packages/ts-ioc-container",
@@ -46,5 +46,5 @@
46
46
  "ts-jest": "27.0.5",
47
47
  "typescript": "4.4.3"
48
48
  },
49
- "gitHead": "746eb02a0ed5c608c10673640c9748e156a9b0cc"
49
+ "gitHead": "c0a1641180b6370a304cacbbc47c586e5f021496"
50
50
  }