ts-ioc-container 6.22.0 → 6.22.4

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.
@@ -3,7 +3,6 @@ import { IServiceLocator } from '../IServiceLocator';
3
3
  export declare class SingletonProvider<T> implements IProvider<T> {
4
4
  private readonly decorated;
5
5
  private instance;
6
- private hasInstance;
7
6
  constructor(decorated: IProvider<T>);
8
7
  clone(): IProvider<T>;
9
8
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAIzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAS;gBAEC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;CAQvD"}
1
+ {"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAGzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAuB;gBAEV,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;CAQvD"}
@@ -27,11 +27,16 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  exports.SingletonProvider = void 0;
29
29
  var ProviderNotClonedError_1 = require("../../errors/ProviderNotClonedError");
30
+ var Box = /** @class */ (function () {
31
+ function Box(value) {
32
+ this.value = value;
33
+ }
34
+ return Box;
35
+ }());
30
36
  var SingletonProvider = /** @class */ (function () {
31
37
  function SingletonProvider(decorated) {
32
38
  this.decorated = decorated;
33
39
  this.instance = null;
34
- this.hasInstance = false;
35
40
  }
36
41
  SingletonProvider.prototype.clone = function () {
37
42
  throw new ProviderNotClonedError_1.ProviderNotClonedError('SingletonProvider cannot be cloned');
@@ -46,11 +51,11 @@ var SingletonProvider = /** @class */ (function () {
46
51
  for (var _i = 1; _i < arguments.length; _i++) {
47
52
  args[_i - 1] = arguments[_i];
48
53
  }
49
- if (!this.hasInstance) {
50
- this.hasInstance = true;
51
- this.instance = (_a = this.decorated).resolve.apply(_a, __spreadArray([locator], __read(args), false));
54
+ if (this.instance === null) {
55
+ var instance = (_a = this.decorated).resolve.apply(_a, __spreadArray([locator], __read(args), false));
56
+ this.instance = new Box(instance);
52
57
  }
53
- return this.instance;
58
+ return this.instance.value;
54
59
  };
55
60
  return SingletonProvider;
56
61
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,8EAA6E;AAE7E;IAII,2BAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAH5C,aAAQ,GAAa,IAAI,CAAC;QAC1B,gBAAW,GAAG,KAAK,CAAC;IAE2B,CAAC;IAExD,iCAAK,GAAL;QACI,MAAM,IAAI,+CAAsB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAwB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,OAAO,UAAK,IAAI,UAAC,CAAC;SAC5D;QAED,OAAO,IAAI,CAAC,QAAa,CAAC;IAC9B,CAAC;IACL,wBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,8CAAiB"}
1
+ {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,8EAA6E;AAE7E;IACI,aAAmB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IACnC,UAAC;AAAD,CAAC,AAFD,IAEC;AAED;IAGI,2BAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAF5C,aAAQ,GAAkB,IAAI,CAAC;IAEgB,CAAC;IAExD,iCAAK,GAAL;QACI,MAAM,IAAI,+CAAsB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAwB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAM,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,OAAO,UAAK,IAAI,UAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAS,CAAC,KAAU,CAAC;IACrC,CAAC;IACL,wBAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBY,8CAAiB"}
@@ -38,7 +38,9 @@ var IocInjector = /** @class */ (function () {
38
38
  for (var _i = 1; _i < arguments.length; _i++) {
39
39
  deps[_i - 1] = arguments[_i];
40
40
  }
41
- return new (value.bind.apply(value, __spreadArray([void 0], __read((0, helpers_1.merge)(this.metadataCollector.getInjectionFns(value), deps.map(helpers_1.constant)).map(function (fn) { return fn(_this.locator); })), false)))();
41
+ var injectionFns = this.metadataCollector.getInjectionFns(value);
42
+ var args = (0, helpers_1.merge)(injectionFns, deps.map(helpers_1.constant)).map(function (fn) { return fn(_this.locator); });
43
+ return new (value.bind.apply(value, __spreadArray([void 0], __read(args), false)))();
42
44
  };
43
45
  IocInjector.prototype.dispose = function () { };
44
46
  return IocInjector;
@@ -1 +1 @@
1
- {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iDAAwD;AAGxD;IACI,qBACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,6BAAO,GAAP,UAAW,KAAqB;QAAhC,iBAIC;QAJiC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC5C,YAAW,KAAK,YAAL,KAAK,iCACT,IAAA,eAAK,EAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,KAAI,CAAC,OAAO,CAAC,EAAhB,CAAgB,CAAC,cAC3G;IACN,CAAC;IAED,6BAAO,GAAP,cAAiB,CAAC;IACtB,kBAAC;AAAD,CAAC,AAbD,IAaC;AAbY,kCAAW"}
1
+ {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iDAAwD;AAGxD;IACI,qBACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,6BAAO,GAAP,UAAW,KAAqB;QAAhC,iBAIC;QAJiC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC5C,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,IAAM,IAAI,GAAG,IAAA,eAAK,EAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,KAAI,CAAC,OAAO,CAAC,EAAhB,CAAgB,CAAC,CAAC;QACnF,YAAW,KAAK,YAAL,KAAK,iCAAI,IAAI,cAAE;IAC9B,CAAC;IAED,6BAAO,GAAP,cAAiB,CAAC;IACtB,kBAAC;AAAD,CAAC,AAbD,IAaC;AAbY,kCAAW"}
@@ -3,7 +3,6 @@ import { IServiceLocator } from '../IServiceLocator';
3
3
  export declare class SingletonProvider<T> implements IProvider<T> {
4
4
  private readonly decorated;
5
5
  private instance;
6
- private hasInstance;
7
6
  constructor(decorated: IProvider<T>);
8
7
  clone(): IProvider<T>;
9
8
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAIzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAS;gBAEC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;CAQvD"}
1
+ {"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAGzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAuB;gBAEV,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;CAQvD"}
@@ -1,9 +1,13 @@
1
1
  import { ProviderNotClonedError } from '../../errors/ProviderNotClonedError';
2
+ class Box {
3
+ constructor(value) {
4
+ this.value = value;
5
+ }
6
+ }
2
7
  export class SingletonProvider {
3
8
  constructor(decorated) {
4
9
  this.decorated = decorated;
5
10
  this.instance = null;
6
- this.hasInstance = false;
7
11
  }
8
12
  clone() {
9
13
  throw new ProviderNotClonedError('SingletonProvider cannot be cloned');
@@ -13,11 +17,11 @@ export class SingletonProvider {
13
17
  this.decorated.dispose();
14
18
  }
15
19
  resolve(locator, ...args) {
16
- if (!this.hasInstance) {
17
- this.hasInstance = true;
18
- this.instance = this.decorated.resolve(locator, ...args);
20
+ if (this.instance === null) {
21
+ const instance = this.decorated.resolve(locator, ...args);
22
+ this.instance = new Box(instance);
19
23
  }
20
- return this.instance;
24
+ return this.instance.value;
21
25
  }
22
26
  }
23
27
  //# sourceMappingURL=SingletonProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,OAAO,iBAAiB;IAI1B,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAH5C,aAAQ,GAAa,IAAI,CAAC;QAC1B,gBAAW,GAAG,KAAK,CAAC;IAE2B,CAAC;IAExD,KAAK;QACD,MAAM,IAAI,sBAAsB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,OAAwB,EAAE,GAAG,IAAW;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;SAC5D;QAED,OAAO,IAAI,CAAC,QAAa,CAAC;IAC9B,CAAC;CACJ"}
1
+ {"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,GAAG;IACL,YAAmB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;CAClC;AAED,MAAM,OAAO,iBAAiB;IAG1B,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAF5C,aAAQ,GAAkB,IAAI,CAAC;IAEgB,CAAC;IAExD,KAAK;QACD,MAAM,IAAI,sBAAsB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,OAAwB,EAAE,GAAG,IAAW;QAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAS,CAAC,KAAU,CAAC;IACrC,CAAC;CACJ"}
@@ -5,7 +5,9 @@ export class IocInjector {
5
5
  this.metadataCollector = metadataCollector;
6
6
  }
7
7
  resolve(value, ...deps) {
8
- return new value(...merge(this.metadataCollector.getInjectionFns(value), deps.map(constant)).map((fn) => fn(this.locator)));
8
+ const injectionFns = this.metadataCollector.getInjectionFns(value);
9
+ const args = merge(injectionFns, deps.map(constant)).map((fn) => fn(this.locator));
10
+ return new value(...args);
9
11
  }
10
12
  dispose() { }
11
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,OAAO,WAAW;IACpB,YACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,OAAO,CAAI,KAAqB,EAAE,GAAG,IAAW;QAC5C,OAAO,IAAI,KAAK,CACZ,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAC5G,CAAC;IACN,CAAC;IAED,OAAO,KAAU,CAAC;CACrB"}
1
+ {"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,OAAO,WAAW;IACpB,YACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,OAAO,CAAI,KAAqB,EAAE,GAAG,IAAW;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACnF,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,KAAU,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "6.22.0",
3
+ "version": "6.22.4",
4
4
  "description": "Typescript IoC container",
5
5
  "author": "ibabkin <ibabkin@goodgamestudios.com>",
6
6
  "homepage": "https://github.com/IgorBabkin/service-locator",