ts-ioc-container 21.0.13 → 22.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 (65) hide show
  1. package/README.md +40 -20
  2. package/cjm/container/AutoMockedContainer.d.ts +1 -0
  3. package/cjm/container/AutoMockedContainer.js +3 -0
  4. package/cjm/container/AutoMockedContainer.js.map +1 -1
  5. package/cjm/container/Container.d.ts +3 -3
  6. package/cjm/container/Container.js +6 -3
  7. package/cjm/container/Container.js.map +1 -1
  8. package/cjm/container/EmptyContainer.d.ts +1 -0
  9. package/cjm/container/EmptyContainer.js +3 -0
  10. package/cjm/container/EmptyContainer.js.map +1 -1
  11. package/cjm/container/IContainer.d.ts +5 -2
  12. package/cjm/index.d.ts +2 -9
  13. package/cjm/index.js +10 -48
  14. package/cjm/index.js.map +1 -1
  15. package/cjm/provider/IProvider.d.ts +1 -1
  16. package/cjm/provider/Provider.d.ts +0 -3
  17. package/cjm/provider/Provider.js +0 -12
  18. package/cjm/provider/Provider.js.map +1 -1
  19. package/cjm/provider/ProviderBuilder.d.ts +15 -0
  20. package/cjm/provider/ProviderBuilder.js +89 -0
  21. package/cjm/provider/ProviderBuilder.js.map +1 -0
  22. package/cjm/registration/Registration.d.ts +21 -4
  23. package/cjm/registration/Registration.js +116 -0
  24. package/cjm/registration/Registration.js.map +1 -1
  25. package/cjm/registration/RegistrationReflector.d.ts +3 -3
  26. package/cjm/registration/RegistrationReflector.js +2 -2
  27. package/cjm/registration/RegistrationReflector.js.map +1 -1
  28. package/cjm/utils.d.ts +3 -0
  29. package/cjm/utils.js +5 -1
  30. package/cjm/utils.js.map +1 -1
  31. package/esm/container/AutoMockedContainer.d.ts +1 -0
  32. package/esm/container/AutoMockedContainer.js +3 -0
  33. package/esm/container/AutoMockedContainer.js.map +1 -1
  34. package/esm/container/Container.d.ts +3 -3
  35. package/esm/container/Container.js +6 -2
  36. package/esm/container/Container.js.map +1 -1
  37. package/esm/container/EmptyContainer.d.ts +1 -0
  38. package/esm/container/EmptyContainer.js +3 -0
  39. package/esm/container/EmptyContainer.js.map +1 -1
  40. package/esm/container/IContainer.d.ts +5 -2
  41. package/esm/index.d.ts +2 -9
  42. package/esm/index.js +2 -25
  43. package/esm/index.js.map +1 -1
  44. package/esm/provider/IProvider.d.ts +1 -1
  45. package/esm/provider/Provider.d.ts +0 -3
  46. package/esm/provider/Provider.js +0 -6
  47. package/esm/provider/Provider.js.map +1 -1
  48. package/esm/provider/ProviderBuilder.d.ts +15 -0
  49. package/esm/{registration/RegistrationBuilder.js → provider/ProviderBuilder.js} +16 -14
  50. package/esm/provider/ProviderBuilder.js.map +1 -0
  51. package/esm/registration/Registration.d.ts +21 -4
  52. package/esm/registration/Registration.js +56 -1
  53. package/esm/registration/Registration.js.map +1 -1
  54. package/esm/registration/RegistrationReflector.d.ts +3 -3
  55. package/esm/registration/RegistrationReflector.js +3 -3
  56. package/esm/registration/RegistrationReflector.js.map +1 -1
  57. package/esm/utils.d.ts +3 -0
  58. package/esm/utils.js +3 -0
  59. package/esm/utils.js.map +1 -1
  60. package/package.json +2 -2
  61. package/cjm/registration/RegistrationBuilder.d.ts +0 -14
  62. package/cjm/registration/RegistrationBuilder.js +0 -56
  63. package/cjm/registration/RegistrationBuilder.js.map +0 -1
  64. package/esm/registration/RegistrationBuilder.d.ts +0 -14
  65. package/esm/registration/RegistrationBuilder.js.map +0 -1
@@ -1,3 +1,119 @@
1
1
  "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
2
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.forKey = exports.asSingleton = exports.perTags = exports.Registration = void 0;
29
+ var RegistrationMissingKeyError_1 = require("./RegistrationMissingKeyError");
30
+ var ProviderBuilder_1 = require("../provider/ProviderBuilder");
31
+ var RegistrationReflector_1 = require("./RegistrationReflector");
32
+ var utils_1 = require("../utils");
33
+ var registrationReflector = new RegistrationReflector_1.RegistrationReflector();
34
+ var Registration = /** @class */ (function () {
35
+ function Registration(providerBuilder) {
36
+ this.providerBuilder = providerBuilder;
37
+ }
38
+ Registration.fromClass = function (Target) {
39
+ var _a;
40
+ var map = (_a = registrationReflector.getMapper(Target)) !== null && _a !== void 0 ? _a : utils_1.identity;
41
+ return map(new Registration(ProviderBuilder_1.ProviderBuilder.fromClass(Target)));
42
+ };
43
+ Registration.fromValue = function (value) {
44
+ return new Registration(ProviderBuilder_1.ProviderBuilder.fromValue(value));
45
+ };
46
+ Registration.fromFn = function (fn) {
47
+ return new Registration(ProviderBuilder_1.ProviderBuilder.fromFn(fn));
48
+ };
49
+ Registration.prototype.withArgs = function () {
50
+ var _a;
51
+ var extraArgs = [];
52
+ for (var _i = 0; _i < arguments.length; _i++) {
53
+ extraArgs[_i] = arguments[_i];
54
+ }
55
+ this.providerBuilder = (_a = this.providerBuilder).withArgs.apply(_a, __spreadArray([], __read(extraArgs), false));
56
+ return this;
57
+ };
58
+ Registration.prototype.withArgsFn = function (argsFn) {
59
+ this.providerBuilder = this.providerBuilder.withArgsFn(argsFn);
60
+ return this;
61
+ };
62
+ Registration.prototype.perTags = function () {
63
+ var _a;
64
+ var tags = [];
65
+ for (var _i = 0; _i < arguments.length; _i++) {
66
+ tags[_i] = arguments[_i];
67
+ }
68
+ this.providerBuilder = (_a = this.providerBuilder).perTags.apply(_a, __spreadArray([], __read(tags), false));
69
+ return this;
70
+ };
71
+ Registration.prototype.asSingleton = function () {
72
+ var _a;
73
+ var tags = [];
74
+ for (var _i = 0; _i < arguments.length; _i++) {
75
+ tags[_i] = arguments[_i];
76
+ }
77
+ this.providerBuilder = (_a = this.providerBuilder).asSingleton.apply(_a, __spreadArray([], __read(tags), false));
78
+ return this;
79
+ };
80
+ Registration.prototype.forKey = function (key) {
81
+ this.key = key;
82
+ return this;
83
+ };
84
+ Registration.prototype.applyTo = function (container) {
85
+ if (!this.key) {
86
+ throw new RegistrationMissingKeyError_1.RegistrationMissingKeyError('Pls provide registration keys for current providerBuilder');
87
+ }
88
+ container.register(this.key, this.providerBuilder.build());
89
+ };
90
+ return Registration;
91
+ }());
92
+ exports.Registration = Registration;
93
+ var perTags = function () {
94
+ var tags = [];
95
+ for (var _i = 0; _i < arguments.length; _i++) {
96
+ tags[_i] = arguments[_i];
97
+ }
98
+ return function (target) {
99
+ registrationReflector.appendMapper(target, function (registration) { return registration.perTags.apply(registration, __spreadArray([], __read(tags), false)); });
100
+ };
101
+ };
102
+ exports.perTags = perTags;
103
+ var asSingleton = function () {
104
+ var tags = [];
105
+ for (var _i = 0; _i < arguments.length; _i++) {
106
+ tags[_i] = arguments[_i];
107
+ }
108
+ return function (target) {
109
+ registrationReflector.appendMapper(target, function (registration) { return registration.asSingleton.apply(registration, __spreadArray([], __read(tags), false)); });
110
+ };
111
+ };
112
+ exports.asSingleton = asSingleton;
113
+ var forKey = function (key) {
114
+ return function (target) {
115
+ registrationReflector.appendMapper(target, function (registration) { return registration.forKey(key); });
116
+ };
117
+ };
118
+ exports.forKey = forKey;
3
119
  //# sourceMappingURL=Registration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6EAA4E;AAE5E,+DAA8D;AAC9D,iEAAgE;AAChE,kCAAiD;AAEjD,IAAM,qBAAqB,GAAG,IAAI,6CAAqB,EAAE,CAAC;AAE1D;IAgBI,sBAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAbjD,sBAAS,GAAhB,UAAoB,MAAsB;;QACtC,IAAM,GAAG,GAAG,MAAA,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAI,gBAAQ,CAAC;QAChE,OAAO,GAAG,CAAC,IAAI,YAAY,CAAC,iCAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAEM,sBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,YAAY,CAAC,iCAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEM,mBAAM,GAAb,UAAiB,EAAwB;QACrC,OAAO,IAAI,YAAY,CAAC,iCAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAID,+BAAQ,GAAR;;QAAS,mBAAuB;aAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;YAAvB,8BAAuB;;QAC5B,IAAI,CAAC,eAAe,GAAG,CAAA,KAAA,IAAI,CAAC,eAAe,CAAA,CAAC,QAAQ,oCAAI,SAAS,UAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,8BAAO,GAAP;;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,eAAe,GAAG,CAAA,KAAA,IAAI,CAAC,eAAe,CAAA,CAAC,OAAO,oCAAI,IAAI,UAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAW,GAAX;;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACtB,IAAI,CAAC,eAAe,GAAG,CAAA,KAAA,IAAI,CAAC,eAAe,CAAA,CAAC,WAAW,oCAAI,IAAI,UAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6BAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,8BAAO,GAAP,UAAQ,SAAqB;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,yDAA2B,CAAC,2DAA2D,CAAC,CAAC;SACtG;QACD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACL,mBAAC;AAAD,CAAC,AAjDD,IAiDC;AAjDY,oCAAY;AAmDlB,IAAM,OAAO,GAChB;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACf,OAAA,UAAC,MAAW;QACR,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,UAAC,YAAY,IAAK,OAAA,YAAY,CAAC,OAAO,OAApB,YAAY,2BAAY,IAAI,YAA5B,CAA6B,CAAC,CAAC;IAChG,CAAC;AAFD,CAEC,CAAC;AAJO,QAAA,OAAO,WAId;AAEC,IAAM,WAAW,GACpB;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACf,OAAA,UAAC,MAAW;QACR,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,UAAC,YAAY,IAAK,OAAA,YAAY,CAAC,WAAW,OAAxB,YAAY,2BAAgB,IAAI,YAAhC,CAAiC,CAAC,CAAC;IACpG,CAAC;AAFD,CAEC,CAAC;AAJO,QAAA,WAAW,eAIlB;AAEC,IAAM,MAAM,GACf,UAAC,GAAgB;IACjB,OAAA,UAAC,MAAW;QACR,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,UAAC,YAAY,IAAK,OAAA,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAxB,CAAwB,CAAC,CAAC;IAC3F,CAAC;AAFD,CAEC,CAAC;AAJO,QAAA,MAAM,UAIb"}
@@ -1,7 +1,7 @@
1
1
  import { constructor, MapFn } from '../utils';
2
- import { RegistrationBuilder } from './RegistrationBuilder';
2
+ import { Registration } from './Registration';
3
3
  export declare class RegistrationReflector {
4
4
  private metadataKey;
5
- getMapper<T>(target: constructor<T>): MapFn<RegistrationBuilder<T>> | undefined;
6
- appendMapper<T>(target: constructor<T>, mapper: MapFn<RegistrationBuilder<T>>): void;
5
+ getMapper<T>(target: constructor<T>): MapFn<Registration> | undefined;
6
+ appendMapper(target: constructor<unknown>, reducer: MapFn<Registration>): void;
7
7
  }
@@ -9,10 +9,10 @@ var RegistrationReflector = /** @class */ (function () {
9
9
  RegistrationReflector.prototype.getMapper = function (target) {
10
10
  return Reflect.getMetadata(this.metadataKey, target);
11
11
  };
12
- RegistrationReflector.prototype.appendMapper = function (target, mapper) {
12
+ RegistrationReflector.prototype.appendMapper = function (target, reducer) {
13
13
  var _a;
14
14
  var current = (_a = Reflect.getMetadata(this.metadataKey, target)) !== null && _a !== void 0 ? _a : utils_1.identity;
15
- Reflect.defineMetadata(this.metadataKey, function (builder) { return mapper(current(builder)); }, target);
15
+ Reflect.defineMetadata(this.metadataKey, (0, utils_1.pipe)(current, reducer), target);
16
16
  };
17
17
  return RegistrationReflector;
18
18
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationReflector.js","sourceRoot":"","sources":["../../lib/registration/RegistrationReflector.ts"],"names":[],"mappings":";;;AAAA,kCAAwD;AAGxD;IAAA;QACY,gBAAW,GAAG,uBAAuB,CAAC;IASlD,CAAC;IARG,yCAAS,GAAT,UAAa,MAAsB;QAC/B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,4CAAY,GAAZ,UAAgB,MAAsB,EAAE,MAAqC;;QACzE,IAAM,OAAO,GAAkC,MAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,gBAAQ,CAAC;QACzG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,OAA+B,IAAK,OAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAxB,CAAwB,EAAE,MAAM,CAAC,CAAC;IACpH,CAAC;IACL,4BAAC;AAAD,CAAC,AAVD,IAUC;AAVY,sDAAqB"}
1
+ {"version":3,"file":"RegistrationReflector.js","sourceRoot":"","sources":["../../lib/registration/RegistrationReflector.ts"],"names":[],"mappings":";;;AAAA,kCAA8D;AAG9D;IAAA;QACY,gBAAW,GAAG,uBAAuB,CAAC;IASlD,CAAC;IARG,yCAAS,GAAT,UAAa,MAAsB;QAC/B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,4CAAY,GAAZ,UAAa,MAA4B,EAAE,OAA4B;;QACnE,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,gBAAQ,CAAC;QAC1E,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IACL,4BAAC;AAAD,CAAC,AAVD,IAUC;AAVY,sDAAqB"}
package/cjm/utils.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export declare type constructor<T> = new (...args: any[]) => T;
2
2
  export declare type MapFn<T> = (value: T) => T;
3
+ declare type Fn<A, B> = (a: A) => B;
4
+ export declare function pipe<A, B, C>(a: Fn<A, B>, b: Fn<B, C>): Fn<A, C>;
3
5
  export declare const identity: <T>(value: T) => T;
6
+ export {};
package/cjm/utils.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.identity = void 0;
3
+ exports.identity = exports.pipe = void 0;
4
+ function pipe(a, b) {
5
+ return function (x) { return b(a(x)); };
6
+ }
7
+ exports.pipe = pipe;
4
8
  var identity = function (value) { return value; };
5
9
  exports.identity = identity;
6
10
  //# sourceMappingURL=utils.js.map
package/cjm/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":";;;AAIO,IAAM,QAAQ,GAAG,UAAI,KAAQ,IAAK,OAAA,KAAK,EAAL,CAAK,CAAC;AAAlC,QAAA,QAAQ,YAA0B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":";;;AAMA,SAAgB,IAAI,CAAU,CAAW,EAAE,CAAW;IAClD,OAAO,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAP,CAAO,CAAC;AAC1B,CAAC;AAFD,oBAEC;AAEM,IAAM,QAAQ,GAAG,UAAI,KAAQ,IAAK,OAAA,KAAK,EAAL,CAAK,CAAC;AAAlC,QAAA,QAAQ,YAA0B"}
@@ -7,4 +7,5 @@ export declare abstract class AutoMockedContainer implements IContainer {
7
7
  register(): this;
8
8
  getInstances(): unknown[];
9
9
  removeScope(): void;
10
+ add(): this;
10
11
  }
@@ -13,5 +13,8 @@ export class AutoMockedContainer {
13
13
  return [];
14
14
  }
15
15
  removeScope() { }
16
+ add() {
17
+ throw new MethodNotImplementedError();
18
+ }
16
19
  }
17
20
  //# sourceMappingURL=AutoMockedContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,yBAAyB,EAAe,MAAM,UAAU,CAAC;AAEzG,MAAM,OAAgB,mBAAmB;IACrC,WAAW;QACP,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAMD,YAAY;QACR,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,WAAW,KAAU,CAAC;CACzB"}
1
+ {"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,yBAAyB,EAAe,MAAM,UAAU,CAAC;AAEzG,MAAM,OAAgB,mBAAmB;IACrC,WAAW;QACP,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAMD,YAAY;QACR,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG;QACC,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;CACJ"}
@@ -1,7 +1,6 @@
1
- import { IContainer, InjectionToken } from './IContainer';
1
+ import { IContainer, IModule, InjectionToken } from './IContainer';
2
2
  import { IInjector } from '../IInjector';
3
3
  import { IProvider, ProviderKey, Tag, Tagged } from '../provider/IProvider';
4
- import { Registration } from '../registration/Registration';
5
4
  export declare class Container implements IContainer, Tagged {
6
5
  private readonly injector;
7
6
  private readonly providers;
@@ -14,7 +13,7 @@ export declare class Container implements IContainer, Tagged {
14
13
  parent?: IContainer;
15
14
  tags?: Tag[];
16
15
  });
17
- register({ key, provider }: Registration): this;
16
+ register(key: ProviderKey, provider: IProvider): this;
18
17
  resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
19
18
  private resolveByProvider;
20
19
  private resolveByInjector;
@@ -24,5 +23,6 @@ export declare class Container implements IContainer, Tagged {
24
23
  getInstances(): unknown[];
25
24
  removeScope(child: IContainer): void;
26
25
  hasTag(tag: Tag): boolean;
26
+ add(module: IModule): this;
27
27
  private validateContainer;
28
28
  }
@@ -13,7 +13,7 @@ export class Container {
13
13
  this.parent = (_a = options.parent) !== null && _a !== void 0 ? _a : new EmptyContainer();
14
14
  this.tags = (_b = options.tags) !== null && _b !== void 0 ? _b : [];
15
15
  }
16
- register({ key, provider }) {
16
+ register(key, provider) {
17
17
  this.validateContainer();
18
18
  this.providers.add(key, provider);
19
19
  return this;
@@ -36,7 +36,7 @@ export class Container {
36
36
  const scope = new Container(this.injector, { parent: this, tags });
37
37
  for (const [key, provider] of this.getProviders().entries()) {
38
38
  if (provider.isValid(scope)) {
39
- scope.register({ key, provider: provider.clone() });
39
+ scope.register(key, provider.clone());
40
40
  }
41
41
  }
42
42
  this.children.add(scope);
@@ -69,6 +69,10 @@ export class Container {
69
69
  hasTag(tag) {
70
70
  return this.tags.includes(tag);
71
71
  }
72
+ add(module) {
73
+ module.applyTo(this);
74
+ return this;
75
+ }
72
76
  validateContainer() {
73
77
  ContainerDisposedError.assert(!this.isDisposed, 'Container is already disposed');
74
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,5 @@ export declare class EmptyContainer implements IContainer {
8
8
  getProviders(): Map<ProviderKey, IProvider>;
9
9
  getInstances(): unknown[];
10
10
  removeScope(): void;
11
+ add(): this;
11
12
  }
@@ -20,5 +20,8 @@ export class EmptyContainer {
20
20
  return [];
21
21
  }
22
22
  removeScope() { }
23
+ add() {
24
+ throw new MethodNotImplementedError();
25
+ }
23
26
  }
24
27
  //# sourceMappingURL=EmptyContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyContainer.js","sourceRoot":"","sources":["../../lib/container/EmptyContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,MAAM,OAAO,cAAc;IACvB,WAAW;QACP,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO;QACH,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,CAAI,GAAsB;QAC7B,MAAM,IAAI,qBAAqB,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,YAAY;QACR,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,WAAW,KAAU,CAAC;CACzB"}
1
+ {"version":3,"file":"EmptyContainer.js","sourceRoot":"","sources":["../../lib/container/EmptyContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,MAAM,OAAO,cAAc;IACvB,WAAW;QACP,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO;QACH,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,CAAI,GAAsB;QAC7B,MAAM,IAAI,qBAAqB,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,YAAY;QACR,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG;QACC,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;CACJ"}
@@ -1,15 +1,18 @@
1
1
  import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
2
2
  import { constructor } from '../utils';
3
- import { Registration } from '../registration/Registration';
4
3
  export declare type InjectionToken<T = unknown> = constructor<T> | ProviderKey;
5
4
  export interface Resolvable {
6
5
  resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
7
6
  }
7
+ export interface IModule {
8
+ applyTo(container: IContainer): void;
9
+ }
8
10
  export interface IContainer extends Resolvable {
9
11
  createScope(tags?: Tag[]): IContainer;
10
- register(value: Registration): this;
12
+ register(key: ProviderKey, value: IProvider): this;
11
13
  getProviders(): Map<ProviderKey, IProvider>;
12
14
  removeScope(child: IContainer): void;
13
15
  getInstances(): unknown[];
14
16
  dispose(): void;
17
+ add(module: IModule): this;
15
18
  }
package/esm/index.d.ts CHANGED
@@ -1,7 +1,4 @@
1
1
  import { IContainer, InjectionToken } from './container/IContainer';
2
- import { ProviderKey, ResolveDependency, Tag } from './provider/IProvider';
3
- import { constructor } from './utils';
4
- import { RegistrationBuilder } from './registration/RegistrationBuilder';
5
2
  export { IContainer, Resolvable } from './container/IContainer';
6
3
  export { EmptyContainer } from './container/EmptyContainer';
7
4
  export { constructor } from './utils';
@@ -16,11 +13,7 @@ export { Provider } from './provider/Provider';
16
13
  export { ArgsFn } from './provider/ArgsProvider';
17
14
  export { AutoMockedContainer } from './container/AutoMockedContainer';
18
15
  export { ProviderKey } from './provider/IProvider';
16
+ export { ProviderBuilder } from './provider/ProviderBuilder';
19
17
  export { isProviderKey } from './provider/IProvider';
18
+ export { perTags, forKey, asSingleton, Registration } from './registration/Registration';
20
19
  export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
21
- export declare function fromClass<T>(Target: constructor<T>): RegistrationBuilder<T>;
22
- export declare function fromValue<T>(value: T): RegistrationBuilder<T>;
23
- export declare function fromFn<T>(fn: ResolveDependency<T>): RegistrationBuilder<T>;
24
- export declare const perTags: (...tags: Tag[]) => ClassDecorator;
25
- export declare const asSingleton: (...tags: Tag[]) => ClassDecorator;
26
- export declare const forKey: (key: ProviderKey) => ClassDecorator;
package/esm/index.js CHANGED
@@ -1,7 +1,3 @@
1
- import { Provider } from './provider/Provider';
2
- import { RegistrationReflector } from './registration/RegistrationReflector';
3
- import { identity } from './utils';
4
- import { RegistrationBuilder } from './registration/RegistrationBuilder';
5
1
  export { EmptyContainer } from './container/EmptyContainer';
6
2
  export { Container } from './container/Container';
7
3
  export { ProviderNotFoundError } from './provider/ProviderNotFoundError';
@@ -9,27 +5,8 @@ export { MethodNotImplementedError } from './MethodNotImplementedError';
9
5
  export { ContainerDisposedError } from './container/ContainerDisposedError';
10
6
  export { Provider } from './provider/Provider';
11
7
  export { AutoMockedContainer } from './container/AutoMockedContainer';
8
+ export { ProviderBuilder } from './provider/ProviderBuilder';
12
9
  export { isProviderKey } from './provider/IProvider';
13
- const providerReflector = new RegistrationReflector();
10
+ export { perTags, forKey, asSingleton, Registration } from './registration/Registration';
14
11
  export const by = (key, ...args) => (l) => l.resolve(key, ...args);
15
- export function fromClass(Target) {
16
- var _a;
17
- const map = (_a = providerReflector.getMapper(Target)) !== null && _a !== void 0 ? _a : identity;
18
- return map(new RegistrationBuilder(Provider.fromClass(Target)));
19
- }
20
- export function fromValue(value) {
21
- return new RegistrationBuilder(Provider.fromValue(value));
22
- }
23
- export function fromFn(fn) {
24
- return new RegistrationBuilder(new Provider(fn));
25
- }
26
- export const perTags = (...tags) => (target) => {
27
- providerReflector.appendMapper(target, (builder) => builder.perTags(...tags));
28
- };
29
- export const asSingleton = (...tags) => (target) => {
30
- providerReflector.appendMapper(target, (builder) => builder.asSingleton(...tags));
31
- };
32
- export const forKey = (key) => (target) => {
33
- providerReflector.appendMapper(target, (builder) => builder.forKey(key));
34
- };
35
12
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAe,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAEtD,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;AAEnC,MAAM,UAAU,SAAS,CAAI,MAAsB;;IAC/C,MAAM,GAAG,GAAG,MAAA,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAI,QAAQ,CAAC;IAC5D,OAAO,GAAG,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAChB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAW,EAAE,EAAE;IACZ,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,WAAW,GACpB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAW,EAAE,EAAE;IACZ,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,MAAM,GACf,CAAC,GAAgB,EAAkB,EAAE,CACrC,CAAC,MAAW,EAAE,EAAE;IACZ,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEzF,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,5 +1,5 @@
1
1
  import { InjectionToken, Resolvable } from '../container/IContainer';
2
- export declare type ResolveDependency<T> = (container: Resolvable, ...args: unknown[]) => T;
2
+ export declare type ResolveDependency<T = unknown> = (container: Resolvable, ...args: unknown[]) => T;
3
3
  export declare type Tag = string;
4
4
  export interface Tagged {
5
5
  hasTag(tag: Tag): boolean;
@@ -1,10 +1,7 @@
1
- import { constructor } from '../utils';
2
1
  import { IProvider, ResolveDependency } from './IProvider';
3
2
  import { Resolvable } from '../container/IContainer';
4
3
  export declare class Provider<T> implements IProvider<T> {
5
4
  private readonly resolveDependency;
6
- static fromClass<T>(value: constructor<T>): Provider<T>;
7
- static fromValue<T>(value: T): Provider<T>;
8
5
  constructor(resolveDependency: ResolveDependency<T>);
9
6
  clone(): Provider<T>;
10
7
  resolve(container: Resolvable, ...args: unknown[]): T;
@@ -2,12 +2,6 @@ export class Provider {
2
2
  constructor(resolveDependency) {
3
3
  this.resolveDependency = resolveDependency;
4
4
  }
5
- static fromClass(value) {
6
- return new Provider((container, ...args) => container.resolve(value, ...args));
7
- }
8
- static fromValue(value) {
9
- return new Provider(() => value);
10
- }
11
5
  clone() {
12
6
  return new Provider(this.resolveDependency);
13
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../lib/provider/Provider.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IASjB,YAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IARxE,MAAM,CAAC,SAAS,CAAI,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAID,KAAK;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,SAAqB,EAAE,GAAG,IAAe;QAC7C,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;CACJ"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../lib/provider/Provider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,QAAQ;IACjB,YAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAExE,KAAK;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,SAAqB,EAAE,GAAG,IAAe;QAC7C,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;CACJ"}
@@ -0,0 +1,15 @@
1
+ import { IProvider, ResolveDependency, Tag } from './IProvider';
2
+ import { ArgsFn } from './ArgsProvider';
3
+ import { constructor } from '../utils';
4
+ export declare class ProviderBuilder {
5
+ private provider;
6
+ static fromClass(Target: constructor<unknown>): ProviderBuilder;
7
+ static fromValue(value: unknown): ProviderBuilder;
8
+ static fromFn(fn: ResolveDependency): ProviderBuilder;
9
+ constructor(provider: IProvider);
10
+ withArgs(...extraArgs: unknown[]): this;
11
+ withArgsFn(argsFn: ArgsFn): this;
12
+ perTags(...tags: Tag[]): this;
13
+ asSingleton(...tags: Tag[]): this;
14
+ build(): IProvider<unknown>;
15
+ }
@@ -1,11 +1,20 @@
1
- import { SingletonProvider } from '../provider/SingletonProvider';
2
- import { TaggedProvider } from '../provider/TaggedProvider';
3
- import { ArgsProvider } from '../provider/ArgsProvider';
4
- import { RegistrationMissingKeyError } from './RegistrationMissingKeyError';
5
- export class RegistrationBuilder {
1
+ import { ArgsProvider } from './ArgsProvider';
2
+ import { TaggedProvider } from './TaggedProvider';
3
+ import { SingletonProvider } from './SingletonProvider';
4
+ import { Provider } from './Provider';
5
+ export class ProviderBuilder {
6
6
  constructor(provider) {
7
7
  this.provider = provider;
8
8
  }
9
+ static fromClass(Target) {
10
+ return new ProviderBuilder(new Provider((container, ...args) => container.resolve(Target, ...args)));
11
+ }
12
+ static fromValue(value) {
13
+ return new ProviderBuilder(new Provider(() => value));
14
+ }
15
+ static fromFn(fn) {
16
+ return new ProviderBuilder(new Provider(fn));
17
+ }
9
18
  withArgs(...extraArgs) {
10
19
  this.provider = new ArgsProvider(this.provider, () => extraArgs);
11
20
  return this;
@@ -25,15 +34,8 @@ export class RegistrationBuilder {
25
34
  }
26
35
  return this;
27
36
  }
28
- forKey(key) {
29
- this.key = key;
30
- return this;
31
- }
32
37
  build() {
33
- if (!this.key) {
34
- throw new RegistrationMissingKeyError('Pls provide registration keys for current provider');
35
- }
36
- return { key: this.key, provider: this.provider };
38
+ return this.provider;
37
39
  }
38
40
  }
39
- //# sourceMappingURL=RegistrationBuilder.js.map
41
+ //# sourceMappingURL=ProviderBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/provider/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,eAAe;IAaxB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;IAAG,CAAC;IAZ3C,MAAM,CAAC,SAAS,CAAC,MAA4B;QACzC,OAAO,IAAI,eAAe,CAAC,IAAI,QAAQ,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAc;QAC3B,OAAO,IAAI,eAAe,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,EAAqB;QAC/B,OAAO,IAAI,eAAe,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAID,QAAQ,CAAC,GAAG,SAAoB;QAC5B,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,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,WAAW,CAAC,GAAG,IAAW;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
@@ -1,5 +1,22 @@
1
- import { IProvider, ProviderKey } from '../provider/IProvider';
2
- export interface Registration<T = unknown> {
3
- key: ProviderKey;
4
- provider: IProvider<T>;
1
+ import { ProviderKey, ResolveDependency, Tag } from '../provider/IProvider';
2
+ import { ArgsFn } from '../provider/ArgsProvider';
3
+ import { IContainer, IModule } from '../container/IContainer';
4
+ import { ProviderBuilder } from '../provider/ProviderBuilder';
5
+ import { constructor } from '../utils';
6
+ export declare class Registration implements IModule {
7
+ private providerBuilder;
8
+ private key?;
9
+ static fromClass<T>(Target: constructor<T>): Registration;
10
+ static fromValue<T>(value: T): Registration;
11
+ static fromFn<T>(fn: ResolveDependency<T>): Registration;
12
+ constructor(providerBuilder: ProviderBuilder);
13
+ withArgs(...extraArgs: unknown[]): this;
14
+ withArgsFn(argsFn: ArgsFn): this;
15
+ perTags(...tags: Tag[]): this;
16
+ asSingleton(...tags: Tag[]): this;
17
+ forKey(key: ProviderKey): this;
18
+ applyTo(container: IContainer): void;
5
19
  }
20
+ export declare const perTags: (...tags: Tag[]) => ClassDecorator;
21
+ export declare const asSingleton: (...tags: Tag[]) => ClassDecorator;
22
+ export declare const forKey: (key: ProviderKey) => ClassDecorator;
@@ -1,2 +1,57 @@
1
- export {};
1
+ import { RegistrationMissingKeyError } from './RegistrationMissingKeyError';
2
+ import { ProviderBuilder } from '../provider/ProviderBuilder';
3
+ import { RegistrationReflector } from './RegistrationReflector';
4
+ import { identity } from '../utils';
5
+ const registrationReflector = new RegistrationReflector();
6
+ export class Registration {
7
+ constructor(providerBuilder) {
8
+ this.providerBuilder = providerBuilder;
9
+ }
10
+ static fromClass(Target) {
11
+ var _a;
12
+ const map = (_a = registrationReflector.getMapper(Target)) !== null && _a !== void 0 ? _a : identity;
13
+ return map(new Registration(ProviderBuilder.fromClass(Target)));
14
+ }
15
+ static fromValue(value) {
16
+ return new Registration(ProviderBuilder.fromValue(value));
17
+ }
18
+ static fromFn(fn) {
19
+ return new Registration(ProviderBuilder.fromFn(fn));
20
+ }
21
+ withArgs(...extraArgs) {
22
+ this.providerBuilder = this.providerBuilder.withArgs(...extraArgs);
23
+ return this;
24
+ }
25
+ withArgsFn(argsFn) {
26
+ this.providerBuilder = this.providerBuilder.withArgsFn(argsFn);
27
+ return this;
28
+ }
29
+ perTags(...tags) {
30
+ this.providerBuilder = this.providerBuilder.perTags(...tags);
31
+ return this;
32
+ }
33
+ asSingleton(...tags) {
34
+ this.providerBuilder = this.providerBuilder.asSingleton(...tags);
35
+ return this;
36
+ }
37
+ forKey(key) {
38
+ this.key = key;
39
+ return this;
40
+ }
41
+ applyTo(container) {
42
+ if (!this.key) {
43
+ throw new RegistrationMissingKeyError('Pls provide registration keys for current providerBuilder');
44
+ }
45
+ container.register(this.key, this.providerBuilder.build());
46
+ }
47
+ }
48
+ export const perTags = (...tags) => (target) => {
49
+ registrationReflector.appendMapper(target, (registration) => registration.perTags(...tags));
50
+ };
51
+ export const asSingleton = (...tags) => (target) => {
52
+ registrationReflector.appendMapper(target, (registration) => registration.asSingleton(...tags));
53
+ };
54
+ export const forKey = (key) => (target) => {
55
+ registrationReflector.appendMapper(target, (registration) => registration.forKey(key));
56
+ };
2
57
  //# sourceMappingURL=Registration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { constructor, MapFn } from '../utils';
2
- import { RegistrationBuilder } from './RegistrationBuilder';
2
+ import { Registration } from './Registration';
3
3
  export declare class RegistrationReflector {
4
4
  private metadataKey;
5
- getMapper<T>(target: constructor<T>): MapFn<RegistrationBuilder<T>> | undefined;
6
- appendMapper<T>(target: constructor<T>, mapper: MapFn<RegistrationBuilder<T>>): void;
5
+ getMapper<T>(target: constructor<T>): MapFn<Registration> | undefined;
6
+ appendMapper(target: constructor<unknown>, reducer: MapFn<Registration>): void;
7
7
  }