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,4 +1,4 @@
1
- import { identity } from '../utils';
1
+ import { identity, pipe } from '../utils';
2
2
  export class RegistrationReflector {
3
3
  constructor() {
4
4
  this.metadataKey = 'RegistrationReflector';
@@ -6,10 +6,10 @@ export class RegistrationReflector {
6
6
  getMapper(target) {
7
7
  return Reflect.getMetadata(this.metadataKey, target);
8
8
  }
9
- appendMapper(target, mapper) {
9
+ appendMapper(target, reducer) {
10
10
  var _a;
11
11
  const current = (_a = Reflect.getMetadata(this.metadataKey, target)) !== null && _a !== void 0 ? _a : identity;
12
- Reflect.defineMetadata(this.metadataKey, (builder) => mapper(current(builder)), target);
12
+ Reflect.defineMetadata(this.metadataKey, pipe(current, reducer), target);
13
13
  }
14
14
  }
15
15
  //# sourceMappingURL=RegistrationReflector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationReflector.js","sourceRoot":"","sources":["../../lib/registration/RegistrationReflector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAS,MAAM,UAAU,CAAC;AAGxD,MAAM,OAAO,qBAAqB;IAAlC;QACY,gBAAW,GAAG,uBAAuB,CAAC;IASlD,CAAC;IARG,SAAS,CAAI,MAAsB;QAC/B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,YAAY,CAAI,MAAsB,EAAE,MAAqC;;QACzE,MAAM,OAAO,GAAkC,MAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,QAAQ,CAAC;QACzG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpH,CAAC;CACJ"}
1
+ {"version":3,"file":"RegistrationReflector.js","sourceRoot":"","sources":["../../lib/registration/RegistrationReflector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAS,IAAI,EAAE,MAAM,UAAU,CAAC;AAG9D,MAAM,OAAO,qBAAqB;IAAlC;QACY,gBAAW,GAAG,uBAAuB,CAAC;IASlD,CAAC;IARG,SAAS,CAAI,MAAsB;QAC/B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,YAAY,CAAC,MAA4B,EAAE,OAA4B;;QACnE,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,QAAQ,CAAC;QAC1E,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;CACJ"}
package/esm/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/esm/utils.js CHANGED
@@ -1,2 +1,5 @@
1
+ export function pipe(a, b) {
2
+ return (x) => b(a(x));
3
+ }
1
4
  export const identity = (value) => value;
2
5
  //# sourceMappingURL=utils.js.map
package/esm/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,IAAI,CAAU,CAAW,EAAE,CAAW;IAClD,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "21.0.13",
3
+ "version": "22.0.0",
4
4
  "description": "Typescript IoC container",
5
5
  "author": "ibabkin <igba14@gmail.com>",
6
6
  "homepage": "https://github.com/IgorBabkin/ts-ioc-container/tree/master/packages/ts-ioc-container",
@@ -48,5 +48,5 @@
48
48
  "ts-jest": "27.0.5",
49
49
  "typescript": "4.4.3"
50
50
  },
51
- "gitHead": "90d82ea2b69b22738cc34a89e75ff1249e516c6b"
51
+ "gitHead": "3b7ea0b4a18ab963c87c7c273b6b3346a9e09f15"
52
52
  }
@@ -1,14 +0,0 @@
1
- import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
2
- import { ArgsFn } from '../provider/ArgsProvider';
3
- import { Registration } from './Registration';
4
- export declare class RegistrationBuilder<T = unknown> {
5
- private provider;
6
- private key?;
7
- constructor(provider: IProvider<T>);
8
- withArgs(...extraArgs: unknown[]): this;
9
- withArgsFn(argsFn: ArgsFn): this;
10
- perTags(...tags: Tag[]): this;
11
- asSingleton(...tags: Tag[]): this;
12
- forKey(key: ProviderKey): this;
13
- build(): Registration<T>;
14
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RegistrationBuilder = void 0;
4
- var SingletonProvider_1 = require("../provider/SingletonProvider");
5
- var TaggedProvider_1 = require("../provider/TaggedProvider");
6
- var ArgsProvider_1 = require("../provider/ArgsProvider");
7
- var RegistrationMissingKeyError_1 = require("./RegistrationMissingKeyError");
8
- var RegistrationBuilder = /** @class */ (function () {
9
- function RegistrationBuilder(provider) {
10
- this.provider = provider;
11
- }
12
- RegistrationBuilder.prototype.withArgs = function () {
13
- var extraArgs = [];
14
- for (var _i = 0; _i < arguments.length; _i++) {
15
- extraArgs[_i] = arguments[_i];
16
- }
17
- this.provider = new ArgsProvider_1.ArgsProvider(this.provider, function () { return extraArgs; });
18
- return this;
19
- };
20
- RegistrationBuilder.prototype.withArgsFn = function (argsFn) {
21
- this.provider = new ArgsProvider_1.ArgsProvider(this.provider, argsFn);
22
- return this;
23
- };
24
- RegistrationBuilder.prototype.perTags = function () {
25
- var tags = [];
26
- for (var _i = 0; _i < arguments.length; _i++) {
27
- tags[_i] = arguments[_i];
28
- }
29
- this.provider = new TaggedProvider_1.TaggedProvider(this.provider, tags);
30
- return this;
31
- };
32
- RegistrationBuilder.prototype.asSingleton = function () {
33
- var tags = [];
34
- for (var _i = 0; _i < arguments.length; _i++) {
35
- tags[_i] = arguments[_i];
36
- }
37
- this.provider = new SingletonProvider_1.SingletonProvider(this.provider);
38
- if (tags.length > 0) {
39
- this.provider = new TaggedProvider_1.TaggedProvider(this.provider, tags);
40
- }
41
- return this;
42
- };
43
- RegistrationBuilder.prototype.forKey = function (key) {
44
- this.key = key;
45
- return this;
46
- };
47
- RegistrationBuilder.prototype.build = function () {
48
- if (!this.key) {
49
- throw new RegistrationMissingKeyError_1.RegistrationMissingKeyError('Pls provide registration keys for current provider');
50
- }
51
- return { key: this.key, provider: this.provider };
52
- };
53
- return RegistrationBuilder;
54
- }());
55
- exports.RegistrationBuilder = RegistrationBuilder;
56
- //# sourceMappingURL=RegistrationBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegistrationBuilder.js","sourceRoot":"","sources":["../../lib/registration/RegistrationBuilder.ts"],"names":[],"mappings":";;;AACA,mEAAkE;AAClE,6DAA4D;AAC5D,yDAAgE;AAChE,6EAA4E;AAG5E;IAGI,6BAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,sCAAQ,GAAR;QAAS,mBAAuB;aAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;YAAvB,8BAAuB;;QAC5B,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,wCAAU,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,qCAAO,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,yCAAW,GAAX;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mCAAK,GAAL;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,yDAA2B,CAAC,oDAAoD,CAAC,CAAC;SAC/F;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IACL,0BAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,kDAAmB"}
@@ -1,14 +0,0 @@
1
- import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
2
- import { ArgsFn } from '../provider/ArgsProvider';
3
- import { Registration } from './Registration';
4
- export declare class RegistrationBuilder<T = unknown> {
5
- private provider;
6
- private key?;
7
- constructor(provider: IProvider<T>);
8
- withArgs(...extraArgs: unknown[]): this;
9
- withArgsFn(argsFn: ArgsFn): this;
10
- perTags(...tags: Tag[]): this;
11
- asSingleton(...tags: Tag[]): this;
12
- forKey(key: ProviderKey): this;
13
- build(): Registration<T>;
14
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegistrationBuilder.js","sourceRoot":"","sources":["../../lib/registration/RegistrationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAU,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,MAAM,OAAO,mBAAmB;IAG5B,YAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,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,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,2BAA2B,CAAC,oDAAoD,CAAC,CAAC;SAC/F;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;CACJ"}