ts-ioc-container 14.0.8 → 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 (82) hide show
  1. package/README.md +14 -13
  2. package/cjm/core/provider/{IProvidersMetadataCollector.d.ts → IProviderReflector.d.ts} +1 -1
  3. package/cjm/core/provider/{IProvidersMetadataCollector.js → IProviderReflector.js} +1 -1
  4. package/cjm/core/provider/IProviderReflector.js.map +1 -0
  5. package/cjm/core/provider/Provider.d.ts +1 -2
  6. package/cjm/core/provider/Provider.js +8 -9
  7. package/cjm/core/provider/Provider.js.map +1 -1
  8. package/{esm/core/provider/ProvidersMetadataCollector.d.ts → cjm/core/provider/ProviderReflector.d.ts} +4 -3
  9. package/cjm/core/provider/ProviderReflector.js +26 -0
  10. package/cjm/core/provider/ProviderReflector.js.map +1 -0
  11. package/cjm/hooks/IMethodReflector.d.ts +3 -0
  12. package/cjm/hooks/IMethodReflector.js +3 -0
  13. package/cjm/hooks/IMethodReflector.js.map +1 -0
  14. package/cjm/hooks/MethodReflector.d.ts +9 -0
  15. package/cjm/hooks/{MethodsMetadataCollector.js → MethodReflector.js} +18 -11
  16. package/cjm/hooks/MethodReflector.js.map +1 -0
  17. package/cjm/index.d.ts +9 -19
  18. package/cjm/index.js +20 -43
  19. package/cjm/index.js.map +1 -1
  20. package/cjm/providers/ArgsProvider.d.ts +2 -2
  21. package/cjm/providers/ArgsProvider.js.map +1 -1
  22. package/cjm/providers/LevelProvider.d.ts +1 -2
  23. package/cjm/providers/LevelProvider.js +8 -9
  24. package/cjm/providers/LevelProvider.js.map +1 -1
  25. package/cjm/providers/ProviderBuilder.d.ts +5 -1
  26. package/cjm/providers/ProviderBuilder.js +11 -0
  27. package/cjm/providers/ProviderBuilder.js.map +1 -1
  28. package/cjm/providers/SingletonProvider.d.ts +1 -2
  29. package/cjm/providers/SingletonProvider.js +7 -8
  30. package/cjm/providers/SingletonProvider.js.map +1 -1
  31. package/cjm/providers/TaggedProvider.d.ts +1 -2
  32. package/cjm/providers/TaggedProvider.js +15 -16
  33. package/cjm/providers/TaggedProvider.js.map +1 -1
  34. package/esm/core/provider/{IProvidersMetadataCollector.d.ts → IProviderReflector.d.ts} +1 -1
  35. package/esm/core/provider/IProviderReflector.js +2 -0
  36. package/esm/core/provider/IProviderReflector.js.map +1 -0
  37. package/esm/core/provider/Provider.d.ts +1 -2
  38. package/esm/core/provider/Provider.js +4 -3
  39. package/esm/core/provider/Provider.js.map +1 -1
  40. package/{cjm/core/provider/ProvidersMetadataCollector.d.ts → esm/core/provider/ProviderReflector.d.ts} +4 -3
  41. package/esm/core/provider/{ProvidersMetadataCollector.js → ProviderReflector.js} +4 -3
  42. package/esm/core/provider/ProviderReflector.js.map +1 -0
  43. package/esm/hooks/IMethodReflector.d.ts +3 -0
  44. package/esm/hooks/IMethodReflector.js +2 -0
  45. package/esm/hooks/IMethodReflector.js.map +1 -0
  46. package/esm/hooks/MethodReflector.d.ts +9 -0
  47. package/esm/hooks/{MethodsMetadataCollector.js → MethodReflector.js} +10 -4
  48. package/esm/hooks/MethodReflector.js.map +1 -0
  49. package/esm/index.d.ts +9 -19
  50. package/esm/index.js +6 -25
  51. package/esm/index.js.map +1 -1
  52. package/esm/providers/ArgsProvider.d.ts +2 -2
  53. package/esm/providers/ArgsProvider.js.map +1 -1
  54. package/esm/providers/LevelProvider.d.ts +1 -2
  55. package/esm/providers/LevelProvider.js +4 -3
  56. package/esm/providers/LevelProvider.js.map +1 -1
  57. package/esm/providers/ProviderBuilder.d.ts +5 -1
  58. package/esm/providers/ProviderBuilder.js +11 -0
  59. package/esm/providers/ProviderBuilder.js.map +1 -1
  60. package/esm/providers/SingletonProvider.d.ts +1 -2
  61. package/esm/providers/SingletonProvider.js +4 -3
  62. package/esm/providers/SingletonProvider.js.map +1 -1
  63. package/esm/providers/TaggedProvider.d.ts +1 -2
  64. package/esm/providers/TaggedProvider.js +4 -3
  65. package/esm/providers/TaggedProvider.js.map +1 -1
  66. package/package.json +2 -2
  67. package/cjm/core/provider/IProvidersMetadataCollector.js.map +0 -1
  68. package/cjm/core/provider/ProvidersMetadataCollector.js +0 -25
  69. package/cjm/core/provider/ProvidersMetadataCollector.js.map +0 -1
  70. package/cjm/hooks/IMethodsMetadataCollector.d.ts +0 -5
  71. package/cjm/hooks/IMethodsMetadataCollector.js +0 -11
  72. package/cjm/hooks/IMethodsMetadataCollector.js.map +0 -1
  73. package/cjm/hooks/MethodsMetadataCollector.d.ts +0 -8
  74. package/cjm/hooks/MethodsMetadataCollector.js.map +0 -1
  75. package/esm/core/provider/IProvidersMetadataCollector.js +0 -2
  76. package/esm/core/provider/IProvidersMetadataCollector.js.map +0 -1
  77. package/esm/core/provider/ProvidersMetadataCollector.js.map +0 -1
  78. package/esm/hooks/IMethodsMetadataCollector.d.ts +0 -5
  79. package/esm/hooks/IMethodsMetadataCollector.js +0 -7
  80. package/esm/hooks/IMethodsMetadataCollector.js.map +0 -1
  81. package/esm/hooks/MethodsMetadataCollector.d.ts +0 -8
  82. package/esm/hooks/MethodsMetadataCollector.js.map +0 -1
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
@@ -84,18 +84,19 @@ class Engine {
84
84
 
85
85
  ```typescript
86
86
  import {
87
- MethodsMetadataCollector,
87
+ MethodReflector,
88
88
  createMethodHookDecorator,
89
89
  Container,
90
90
  IInjector,
91
91
  ContainerHook,
92
+ ProviderBuilder,
92
93
  } from "ts-ioc-container";
93
94
 
94
- export const onConstructMetadataCollector = new MethodsMetadataCollector('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 MethodsMetadataCollector('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,7 @@
1
1
  import { constructor } from '../utils/types';
2
2
  import { ProviderBuilder } from '../../providers/ProviderBuilder';
3
3
  export declare type ProviderReducer<T> = (builder: ProviderBuilder<T>) => ProviderBuilder<T>;
4
- export interface IProvidersMetadataCollector {
4
+ export interface IProviderReflector {
5
5
  addReducer<T>(target: constructor<T>, reducer: ProviderReducer<T>): void;
6
6
  findReducerOrCreate<T>(target: constructor<T>): ProviderReducer<T>;
7
7
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IProvidersMetadataCollector.js.map
3
+ //# sourceMappingURL=IProviderReflector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IProviderReflector.js","sourceRoot":"","sources":["../../../lib/core/provider/IProviderReflector.ts"],"names":[],"mappings":""}
@@ -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 { IProvidersMetadataCollector } from './IProvidersMetadataCollector';
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: IProvidersMetadataCollector) => (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,iBAA8C;IAC/C,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"}
@@ -1,10 +1,11 @@
1
- import { IProvidersMetadataCollector, ProviderReducer } from './IProvidersMetadataCollector';
1
+ import { IProviderReflector, ProviderReducer } from './IProviderReflector';
2
2
  import { constructor } from '../utils/types';
3
- export declare class ProvidersMetadataCollector implements IProvidersMetadataCollector {
3
+ export declare class ProviderReflector implements IProviderReflector {
4
4
  private metadataKey;
5
5
  private createReducer;
6
- static create(): ProvidersMetadataCollector;
6
+ static create(): ProviderReflector;
7
7
  constructor(metadataKey: string | symbol, createReducer: () => ProviderReducer<unknown>);
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;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.providerReflector = exports.ProviderReflector = void 0;
4
+ var others_1 = require("../utils/others");
5
+ var ProviderReflector = /** @class */ (function () {
6
+ function ProviderReflector(metadataKey, createReducer) {
7
+ this.metadataKey = metadataKey;
8
+ this.createReducer = createReducer;
9
+ }
10
+ ProviderReflector.create = function () {
11
+ return new ProviderReflector(Symbol('providerReducer'), function () { return others_1.id; });
12
+ };
13
+ ProviderReflector.prototype.findReducerOrCreate = function (target) {
14
+ if (!Reflect.hasMetadata(this.metadataKey, target)) {
15
+ Reflect.defineMetadata(this.metadataKey, this.createReducer(), target);
16
+ }
17
+ return Reflect.getMetadata(this.metadataKey, target);
18
+ };
19
+ ProviderReflector.prototype.addReducer = function (target, reducer) {
20
+ Reflect.defineMetadata(this.metadataKey, reducer, target);
21
+ };
22
+ return ProviderReflector;
23
+ }());
24
+ exports.ProviderReflector = ProviderReflector;
25
+ exports.providerReflector = ProviderReflector.create();
26
+ //# sourceMappingURL=ProviderReflector.js.map
@@ -0,0 +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;AAmBjB,QAAA,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface IMethodReflector {
2
+ invokeHooksOf<GInstance extends Object>(target: GInstance): void;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IMethodReflector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/IMethodReflector.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { IMethodReflector } from './IMethodReflector';
2
+ export declare class MethodReflector implements IMethodReflector {
3
+ readonly hookKey: string | symbol;
4
+ constructor(hookKey: string | symbol);
5
+ private addHook;
6
+ invokeHooksOf<GInstance extends Object>(target: GInstance): void;
7
+ private static getTargetId;
8
+ createMethodHookDecorator(): MethodDecorator;
9
+ }
@@ -36,21 +36,21 @@ var __values = (this && this.__values) || function(o) {
36
36
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.MethodsMetadataCollector = void 0;
40
- var MethodsMetadataCollector = /** @class */ (function () {
41
- function MethodsMetadataCollector(hookKey) {
39
+ exports.MethodReflector = void 0;
40
+ var MethodReflector = /** @class */ (function () {
41
+ function MethodReflector(hookKey) {
42
42
  this.hookKey = hookKey;
43
43
  }
44
44
  // eslint-disable-next-line @typescript-eslint/ban-types
45
- MethodsMetadataCollector.prototype.addHook = function (target, propertyKey) {
46
- var targetId = MethodsMetadataCollector.getTargetId(target);
45
+ MethodReflector.prototype.addHook = function (target, propertyKey) {
46
+ var targetId = MethodReflector.getTargetId(target);
47
47
  var hooks = Reflect.getMetadata(this.hookKey, targetId) || [];
48
48
  Reflect.defineMetadata(this.hookKey, __spreadArray(__spreadArray([], __read(hooks), false), [propertyKey], false), targetId);
49
49
  };
50
50
  // eslint-disable-next-line @typescript-eslint/ban-types
51
- MethodsMetadataCollector.prototype.invokeHooksOf = function (target) {
51
+ MethodReflector.prototype.invokeHooksOf = function (target) {
52
52
  var e_1, _a;
53
- var targetId = MethodsMetadataCollector.getTargetId(target);
53
+ var targetId = MethodReflector.getTargetId(target);
54
54
  var hooks = Reflect.hasMetadata(this.hookKey, targetId)
55
55
  ? Reflect.getMetadata(this.hookKey, targetId)
56
56
  : [];
@@ -69,10 +69,17 @@ var MethodsMetadataCollector = /** @class */ (function () {
69
69
  }
70
70
  };
71
71
  // eslint-disable-next-line @typescript-eslint/ban-types
72
- MethodsMetadataCollector.getTargetId = function (target) {
72
+ MethodReflector.getTargetId = function (target) {
73
73
  return target.constructor;
74
74
  };
75
- return MethodsMetadataCollector;
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
+ };
82
+ return MethodReflector;
76
83
  }());
77
- exports.MethodsMetadataCollector = MethodsMetadataCollector;
78
- //# sourceMappingURL=MethodsMetadataCollector.js.map
84
+ exports.MethodReflector = MethodReflector;
85
+ //# sourceMappingURL=MethodReflector.js.map
@@ -0,0 +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;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,17 +1,14 @@
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
- export { ProviderReducer } from './core/provider/IProvidersMetadataCollector';
3
+ export { ProviderReducer } from './core/provider/IProviderReflector';
7
4
  export { IContainer, Resolveable } from './core/container/IContainer';
8
5
  export { constructor } from './core/utils/types';
9
6
  export { Container } from './core/container/Container';
10
7
  export { ScopeOptions, ResolveDependency, Tag, IProvider } from './core/provider/IProvider';
11
8
  export { IInjector } from './core/IInjector';
12
9
  export { SimpleInjector } from './injectors/SimpleInjector';
13
- export { IMethodsMetadataCollector } from './hooks/IMethodsMetadataCollector';
14
- export { MethodsMetadataCollector } from './hooks/MethodsMetadataCollector';
10
+ export { IMethodReflector } from './hooks/IMethodReflector';
11
+ export { MethodReflector } from './hooks/MethodReflector';
15
12
  export { InjectionToken } from './core/container/IContainer';
16
13
  export { ProviderNotFoundError } from './core/provider/ProviderNotFoundError';
17
14
  export { MethodNotImplementedError } from './core/utils/MethodNotImplementedError';
@@ -21,24 +18,17 @@ 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';
28
25
  export { ProviderBuilder } from './providers/ProviderBuilder';
29
- export { IProvidersMetadataCollector } from './core/provider/IProvidersMetadataCollector';
30
- export { ProvidersMetadataCollector } from './core/provider/ProvidersMetadataCollector';
26
+ export { IProviderReflector } from './core/provider/IProviderReflector';
27
+ 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/IMethodsMetadataCollector';
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,72 +25,49 @@ 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.ProvidersMetadataCollector = 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.MethodsMetadataCollector = exports.SimpleInjector = exports.Container = exports.ContainerHook = void 0;
29
- var Provider_1 = require("./core/provider/Provider");
30
- var ProvidersMetadataCollector_1 = require("./core/provider/ProvidersMetadataCollector");
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");
37
32
  Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return Container_1.Container; } });
38
33
  var SimpleInjector_1 = require("./injectors/SimpleInjector");
39
34
  Object.defineProperty(exports, "SimpleInjector", { enumerable: true, get: function () { return SimpleInjector_1.SimpleInjector; } });
40
- var MethodsMetadataCollector_1 = require("./hooks/MethodsMetadataCollector");
41
- Object.defineProperty(exports, "MethodsMetadataCollector", { enumerable: true, get: function () { return MethodsMetadataCollector_1.MethodsMetadataCollector; } });
35
+ var MethodReflector_1 = require("./hooks/MethodReflector");
36
+ Object.defineProperty(exports, "MethodReflector", { enumerable: true, get: function () { return MethodReflector_1.MethodReflector; } });
42
37
  var ProviderNotFoundError_1 = require("./core/provider/ProviderNotFoundError");
43
38
  Object.defineProperty(exports, "ProviderNotFoundError", { enumerable: true, get: function () { return ProviderNotFoundError_1.ProviderNotFoundError; } });
44
39
  var MethodNotImplementedError_1 = require("./core/utils/MethodNotImplementedError");
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 ProvidersMetadataCollector_2 = require("./core/provider/ProvidersMetadataCollector");
67
- Object.defineProperty(exports, "ProvidersMetadataCollector", { enumerable: true, get: function () { return ProvidersMetadataCollector_2.ProvidersMetadataCollector; } });
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 providerMetadataCollector = ProvidersMetadataCollector_1.ProvidersMetadataCollector.create();
77
- exports.forKey = (0, Provider_1.createAddKeyDecorator)(providerMetadataCollector);
78
- exports.asSingleton = (0, SingletonProvider_1.createSingletonDecorator)(providerMetadataCollector);
79
- exports.perTags = (0, TaggedProvider_1.createTagsDecorator)(providerMetadataCollector);
80
- function fromClass(value) {
81
- return new ProviderBuilder_1.ProviderBuilder(Provider_1.Provider.fromClass(value)).map(providerMetadataCollector.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 IMethodsMetadataCollector_1 = require("./hooks/IMethodsMetadataCollector");
93
- Object.defineProperty(exports, "createMethodHookDecorator", { enumerable: true, get: function () { return IMethodsMetadataCollector_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,yFAAwF;AACxF,mEAAyE;AACzE,6DAAiE;AAEjE,+DAA8D;AAI9D,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAItB,wDAAuD;AAA9C,sGAAA,SAAS,OAAA;AAGlB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,6EAA4E;AAAnE,oIAAA,wBAAwB,OAAA;AAEjC,+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,yFAAwF;AAA/E,wIAAA,0BAA0B,OAAA;AAGnC,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,yBAAyB,GAAG,uDAA0B,CAAC,MAAM,EAAE,CAAC;AACzD,QAAA,MAAM,GAAG,IAAA,gCAAqB,EAAC,yBAAyB,CAAC,CAAC;AAE1D,QAAA,WAAW,GAAG,IAAA,4CAAwB,EAAC,yBAAyB,CAAC,CAAC;AAClE,QAAA,OAAO,GAAG,IAAA,oCAAmB,EAAC,yBAAyB,CAAC,CAAC;AAEtE,SAAgB,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,iCAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AACpH,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,+EAA8E;AAArE,sIAAA,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,7 +1,7 @@
1
1
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
2
2
  import { Resolveable } from '../core/container/IContainer';
3
3
  import { IProvider } from '../core/provider/IProvider';
4
- import { IProvidersMetadataCollector } from '../core/provider/IProvidersMetadataCollector';
4
+ import { IProviderReflector } from '../core/provider/IProviderReflector';
5
5
  export declare type ArgsFn = (l: Resolveable) => any[];
6
6
  export declare class ArgsProvider<T> extends ProviderDecorator<T> {
7
7
  private provider;
@@ -10,4 +10,4 @@ export declare class ArgsProvider<T> extends ProviderDecorator<T> {
10
10
  resolve(container: Resolveable, ...args: any[]): T;
11
11
  clone(): ProviderDecorator<T>;
12
12
  }
13
- export declare const createArgsFnDecorator: (metadataCollector: IProvidersMetadataCollector) => (argsFn: ArgsFn) => ClassDecorator;
13
+ export declare const createArgsFnDecorator: (metadataCollector: IProviderReflector) => (argsFn: ArgsFn) => ClassDecorator;
@@ -1 +1 @@
1
- {"version":3,"file":"ArgsProvider.js","sourceRoot":"","sources":["../../lib/providers/ArgsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAuE;AAQvE;IAAqC,gCAAoB;IACrD,sBAAoB,QAAsB,EAAU,MAAc;QAAlE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAU,YAAM,GAAN,MAAM,CAAQ;;IAElE,CAAC;IAED,8BAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,wCAAC,SAAS,UAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAK,IAAI,WAAE;IAChF,CAAC;IAED,4BAAK,GAAL;QACI,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACL,mBAAC;AAAD,CAAC,AAZD,CAAqC,qCAAiB,GAYrD;AAZY,oCAAY;AAclB,IAAM,qBAAqB,GAC9B,UAAC,iBAA8C;IAC/C,OAAA,UAAC,MAAc;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,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAA9B,CAA8B,CAAC,CAAC;QAC3F,CAAC;IAJD,CAIC;AALD,CAKC,CAAC;AAPO,QAAA,qBAAqB,yBAO5B"}
1
+ {"version":3,"file":"ArgsProvider.js","sourceRoot":"","sources":["../../lib/providers/ArgsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAuE;AAQvE;IAAqC,gCAAoB;IACrD,sBAAoB,QAAsB,EAAU,MAAc;QAAlE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAU,YAAM,GAAN,MAAM,CAAQ;;IAElE,CAAC;IAED,8BAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,wCAAC,SAAS,UAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAK,IAAI,WAAE;IAChF,CAAC;IAED,4BAAK,GAAL;QACI,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACL,mBAAC;AAAD,CAAC,AAZD,CAAqC,qCAAiB,GAYrD;AAZY,oCAAY;AAclB,IAAM,qBAAqB,GAC9B,UAAC,iBAAqC;IACtC,OAAA,UAAC,MAAc;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,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAA9B,CAA8B,CAAC,CAAC;QAC3F,CAAC;IAJD,CAIC;AALD,CAKC,CAAC;AAPO,QAAA,qBAAqB,yBAO5B"}
@@ -1,6 +1,5 @@
1
1
  import { IProvider, ScopeOptions } from '../core/provider/IProvider';
2
2
  import { ProviderDecorator } from '../core/provider/ProviderDecorator';
3
- import { IProvidersMetadataCollector } from '../core/provider/IProvidersMetadataCollector';
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: IProvidersMetadataCollector) => (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,iBAA8C;IAC/C,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
- import { ProviderReducer } from '../core/provider/IProvidersMetadataCollector';
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 { IProvidersMetadataCollector } from '../core/provider/IProvidersMetadataCollector';
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: IProvidersMetadataCollector) => ClassDecorator;
12
+ export declare const asSingleton: ClassDecorator;