ts-ioc-container 7.0.3 → 7.1.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.
@@ -1,9 +1,9 @@
1
1
  import { IProvider, ProviderKey, ScopeOptions, Tag } from './IProvider';
2
2
  import { IProviderRepository } from './IProviderRepository';
3
- export declare class ProviderRepository implements IProviderRepository {
3
+ export declare class ProviderRepository implements IProviderRepository, ScopeOptions {
4
4
  private parent?;
5
5
  level: number;
6
- private tags;
6
+ tags: Tag[];
7
7
  private readonly providers;
8
8
  constructor(parent?: ProviderRepository, level?: number, tags?: Tag[]);
9
9
  add<T>(key: ProviderKey, provider: IProvider<T>): void;
@@ -11,4 +11,5 @@ export declare class ProviderRepository implements IProviderRepository {
11
11
  entries(filters: ScopeOptions): Array<[ProviderKey, IProvider<any>]>;
12
12
  dispose(): void;
13
13
  find<T>(key: ProviderKey): IProvider<T>;
14
+ private findLocally;
14
15
  }
@@ -38,7 +38,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.ProviderRepository = void 0;
40
40
  var ProviderNotFoundError_1 = require("../errors/ProviderNotFoundError");
41
- var ProviderStorage_1 = require("./ProviderStorage");
42
41
  var ProviderRepository = /** @class */ (function () {
43
42
  function ProviderRepository(parent, level, tags) {
44
43
  if (level === void 0) { level = 0; }
@@ -46,19 +45,18 @@ var ProviderRepository = /** @class */ (function () {
46
45
  this.parent = parent;
47
46
  this.level = level;
48
47
  this.tags = tags;
49
- this.providers = new ProviderStorage_1.ProviderStorage();
48
+ this.providers = new Map();
50
49
  }
51
50
  ProviderRepository.prototype.add = function (key, provider) {
52
- this.providers.add(key, provider);
51
+ this.providers.set(key, provider);
53
52
  };
54
53
  ProviderRepository.prototype.clone = function (tags, parent) {
55
54
  var e_1, _a;
56
55
  if (tags === void 0) { tags = []; }
57
56
  if (parent === void 0) { parent = this; }
58
- var options = { level: parent.level + 1, tags: tags };
59
- var repo = new ProviderRepository(parent, options.level, options.tags);
57
+ var repo = new ProviderRepository(parent, parent.level + 1, tags);
60
58
  try {
61
- for (var _b = __values(parent.entries(options)), _c = _b.next(); !_c.done; _c = _b.next()) {
59
+ for (var _b = __values(parent.entries(repo)), _c = _b.next(); !_c.done; _c = _b.next()) {
62
60
  var _d = __read(_c.value, 2), key = _d[0], provider = _d[1];
63
61
  repo.add(key, provider.clone());
64
62
  }
@@ -73,8 +71,12 @@ var ProviderRepository = /** @class */ (function () {
73
71
  return repo;
74
72
  };
75
73
  ProviderRepository.prototype.entries = function (filters) {
76
- var localProviders = this.providers.entries(filters);
77
- var parentProviders = this.parent ? this.parent.entries(filters) : [];
74
+ var _a, _b;
75
+ var localProviders = Array.from(this.providers.entries()).filter(function (_a) {
76
+ var _b = __read(_a, 2), value = _b[1];
77
+ return value.isValid(filters);
78
+ });
79
+ var parentProviders = (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.entries(filters)) !== null && _b !== void 0 ? _b : [];
78
80
  return Array.from(new Map(__spreadArray(__spreadArray([], __read(parentProviders), false), __read(localProviders), false)).entries());
79
81
  };
80
82
  ProviderRepository.prototype.dispose = function () {
@@ -97,13 +99,16 @@ var ProviderRepository = /** @class */ (function () {
97
99
  };
98
100
  ProviderRepository.prototype.find = function (key) {
99
101
  var _a, _b;
100
- var options = { level: this.level, tags: this.tags };
101
- var provider = (_a = this.providers.find(key, options)) !== null && _a !== void 0 ? _a : (_b = this.parent) === null || _b === void 0 ? void 0 : _b.find(key);
102
+ var provider = (_a = this.findLocally(key)) !== null && _a !== void 0 ? _a : (_b = this.parent) === null || _b === void 0 ? void 0 : _b.find(key);
102
103
  if (provider === undefined) {
103
104
  throw new ProviderNotFoundError_1.ProviderNotFoundError(key.toString());
104
105
  }
105
106
  return provider;
106
107
  };
108
+ ProviderRepository.prototype.findLocally = function (key) {
109
+ var provider = this.providers.get(key);
110
+ return !provider || !provider.isValid(this) ? undefined : provider;
111
+ };
107
112
  return ProviderRepository;
108
113
  }());
109
114
  exports.ProviderRepository = ProviderRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderRepository.js","sourceRoot":"","sources":["../../lib/core/ProviderRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yEAAwE;AAExE,qDAAoD;AAEpD;IAGI,4BAAoB,MAA2B,EAAS,KAAS,EAAU,IAAgB;QAAnC,sBAAA,EAAA,SAAS;QAAU,qBAAA,EAAA,SAAgB;QAAvE,WAAM,GAAN,MAAM,CAAqB;QAAS,UAAK,GAAL,KAAK,CAAI;QAAU,SAAI,GAAJ,IAAI,CAAY;QAF1E,cAAS,GAAG,IAAI,iCAAe,EAAE,CAAC;IAE2C,CAAC;IAE/F,gCAAG,GAAH,UAAO,GAAgB,EAAE,QAAsB;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,kCAAK,GAAL,UAAM,IAAgB,EAAE,MAAiC;;QAAnD,qBAAA,EAAA,SAAgB;QAAE,uBAAA,EAAA,aAAiC;QACrD,IAAM,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC;QAClD,IAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;;YACzE,KAA8B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,gBAAA,4BAAE;gBAA5C,IAAA,KAAA,mBAAe,EAAd,GAAG,QAAA,EAAE,QAAQ,QAAA;gBACrB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;aACnC;;;;;;;;;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAO,GAAP,UAAQ,OAAqB;QACzB,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,IAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,wCAAK,eAAe,kBAAK,cAAc,UAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,oCAAO,GAAP;;;YACI,KAAgB,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA,gBAAA,4BAAE;gBAApC,IAAM,CAAC,WAAA;gBACR,CAAC,CAAC,OAAO,EAAE,CAAC;aACf;;;;;;;;;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,iCAAI,GAAJ,UAAQ,GAAgB;;QACpB,IAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,IAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAI,GAAG,EAAE,OAAO,CAAC,mCAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAI,GAAG,CAAC,CAAC;QACnF,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,6CAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACnD;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IACL,yBAAC;AAAD,CAAC,AAxCD,IAwCC;AAxCY,gDAAkB"}
1
+ {"version":3,"file":"ProviderRepository.js","sourceRoot":"","sources":["../../lib/core/ProviderRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yEAAwE;AAGxE;IAGI,4BAAoB,MAA2B,EAAS,KAAS,EAAS,IAAgB;QAAlC,sBAAA,EAAA,SAAS;QAAS,qBAAA,EAAA,SAAgB;QAAtE,WAAM,GAAN,MAAM,CAAqB;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,SAAI,GAAJ,IAAI,CAAY;QAFzE,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEyB,CAAC;IAE9F,gCAAG,GAAH,UAAO,GAAgB,EAAE,QAAsB;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,kCAAK,GAAL,UAAM,IAAgB,EAAE,MAAiC;;QAAnD,qBAAA,EAAA,SAAgB;QAAE,uBAAA,EAAA,aAAiC;QACrD,IAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;;YACpE,KAA8B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,gBAAA,4BAAE;gBAAzC,IAAA,KAAA,mBAAe,EAAd,GAAG,QAAA,EAAE,QAAQ,QAAA;gBACrB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;aACnC;;;;;;;;;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAO,GAAP,UAAQ,OAAqB;;QACzB,IAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAC,EAAS;gBAAT,KAAA,aAAS,EAAN,KAAK,QAAA;YAAM,OAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAtB,CAAsB,CAAC,CAAC;QAC1G,IAAM,eAAe,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,wCAAK,eAAe,kBAAK,cAAc,UAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,oCAAO,GAAP;;;YACI,KAAgB,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA,gBAAA,4BAAE;gBAApC,IAAM,CAAC,WAAA;gBACR,CAAC,CAAC,OAAO,EAAE,CAAC;aACf;;;;;;;;;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,iCAAI,GAAJ,UAAQ,GAAgB;;QACpB,IAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,WAAW,CAAI,GAAG,CAAC,mCAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAI,GAAG,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,6CAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACnD;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,wCAAW,GAAnB,UAAuB,GAAgB;QACnC,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;QACzD,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,CAAC;IACL,yBAAC;AAAD,CAAC,AA3CD,IA2CC;AA3CY,gDAAkB"}
@@ -10,8 +10,8 @@ export declare class ProviderBuilder<T> {
10
10
  withArgs(...extraArgs: any[]): this;
11
11
  withHook(hook: IInstanceHook): this;
12
12
  withArgsFn(fn: (l: IServiceLocator) => any[]): this;
13
- asSingleton(): this;
14
13
  forTags(tags: Tag[]): this;
15
14
  forLevel(level: number): this;
16
- build(): IProvider<T>;
15
+ asSingleton(): IProvider<T>;
16
+ asRequested(): IProvider<T>;
17
17
  }
@@ -52,7 +52,14 @@ var ProviderBuilder = /** @class */ (function () {
52
52
  for (var _i = 0; _i < arguments.length; _i++) {
53
53
  extraArgs[_i] = arguments[_i];
54
54
  }
55
- this.withArgsFn(function () { return extraArgs; });
55
+ var oldProvider = this.provider;
56
+ this.provider = new Provider_1.Provider(function (l) {
57
+ var args = [];
58
+ for (var _i = 1; _i < arguments.length; _i++) {
59
+ args[_i - 1] = arguments[_i];
60
+ }
61
+ return oldProvider.resolve.apply(oldProvider, __spreadArray(__spreadArray([l], __read(args), false), __read(extraArgs), false));
62
+ });
56
63
  return this;
57
64
  };
58
65
  ProviderBuilder.prototype.withHook = function (hook) {
@@ -70,10 +77,6 @@ var ProviderBuilder = /** @class */ (function () {
70
77
  });
71
78
  return this;
72
79
  };
73
- ProviderBuilder.prototype.asSingleton = function () {
74
- this.provider = new SingletonProvider_1.SingletonProvider(this.provider);
75
- return this;
76
- };
77
80
  ProviderBuilder.prototype.forTags = function (tags) {
78
81
  this.provider = new TaggedProvider_1.TaggedProvider(this.provider, tags);
79
82
  return this;
@@ -82,7 +85,10 @@ var ProviderBuilder = /** @class */ (function () {
82
85
  this.provider = new LevelProvider_1.LevelProvider(this.provider, [level, level]);
83
86
  return this;
84
87
  };
85
- ProviderBuilder.prototype.build = function () {
88
+ ProviderBuilder.prototype.asSingleton = function () {
89
+ return new SingletonProvider_1.SingletonProvider(this.provider);
90
+ };
91
+ ProviderBuilder.prototype.asRequested = function () {
86
92
  return this.provider;
87
93
  };
88
94
  return ProviderBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/features/ProviderBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAA8D;AAC9D,6CAA4C;AAG5C,gEAA+D;AAE/D,yDAAwD;AACxD,uDAAsD;AAEtD;IAWI,yBAAY,EAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAVM,+BAAe,GAAtB,UAA0B,KAAqB;QAC3C,OAAO,IAAI,eAAe,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;IAC1E,CAAC;IAEM,4BAAY,GAAnB,UAAuB,KAAQ;QAC3B,OAAO,IAAI,eAAe,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;IAC5C,CAAC;IAMD,kCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAI,CAAC,UAAU,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAQ,GAAR,UAAS,IAAmB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,EAAiC;QACxC,IAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,WAAW,CAAC,OAAO,OAAnB,WAAW,+BAAS,CAAC,UAAK,IAAI,kBAAK,EAAE,CAAC,CAAC,CAAC;QAAxC,CAAyC,CAAC,CAAC;QACxF,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,iCAAO,GAAP,UAAQ,IAAW;QACf,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,+BAAK,GAAL;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACL,sBAAC;AAAD,CAAC,AAjDD,IAiDC;AAjDY,0CAAe"}
1
+ {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/features/ProviderBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAA8D;AAC9D,6CAA4C;AAG5C,gEAA+D;AAE/D,yDAAwD;AACxD,uDAAsD;AAEtD;IAWI,yBAAY,EAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAVM,+BAAe,GAAtB,UAA0B,KAAqB;QAC3C,OAAO,IAAI,eAAe,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;IAC1E,CAAC;IAEM,4BAAY,GAAnB,UAAuB,KAAQ;QAC3B,OAAO,IAAI,eAAe,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;IAC5C,CAAC;IAMD,kCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,WAAW,CAAC,OAAO,OAAnB,WAAW,+BAAS,CAAC,UAAK,IAAI,kBAAK,SAAS;QAA5C,CAA6C,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAQ,GAAR,UAAS,IAAmB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,EAAiC;QACxC,IAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,WAAW,CAAC,OAAO,OAAnB,WAAW,+BAAS,CAAC,UAAK,IAAI,kBAAK,EAAE,CAAC,CAAC,CAAC;QAAxC,CAAyC,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iCAAO,GAAP,UAAQ,IAAW;QACf,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,OAAO,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,qCAAW,GAAX;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACL,sBAAC;AAAD,CAAC,AAjDD,IAiDC;AAjDY,0CAAe"}
package/cjm/index.d.ts CHANGED
@@ -34,6 +34,5 @@ export { ProviderBuilder } from './features/ProviderBuilder';
34
34
  export { IocLocatorBuilder } from './features/ioc/IocLocatorBuilder';
35
35
  export { SimpleLocatorBuilder } from './features/simple/SimpleLocatorBuilder';
36
36
  export { emptyHook } from './features/instanceHook/emptyHook';
37
- export { IScopeContextKey } from './features/scope/IScopeContext';
38
37
  export { LocatorBuilder } from './features/LocatorBuilder';
39
38
  export { ILocatorBuilder } from './features/ILocatorBuilder';
package/cjm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LocatorBuilder = exports.IScopeContextKey = exports.emptyHook = exports.SimpleLocatorBuilder = exports.IocLocatorBuilder = exports.ProviderBuilder = exports.SingletonProvider = exports.LevelProvider = exports.MockedRepository = exports.HookedInjector = exports.TaggedProvider = exports.Provider = exports.ProviderRepository = exports.HookedProvider = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.InjectMetadataCollector = exports.createInjectFnDecorator = exports.createInjectDecorator = exports.createHookDecorator = exports.MethodsMetadataCollector = exports.IocInjector = exports.SimpleInjector = exports.ServiceLocator = exports.VendorMockProviderStorage = exports.MockProviderStorage = exports.MockProvider = void 0;
3
+ exports.LocatorBuilder = exports.emptyHook = exports.SimpleLocatorBuilder = exports.IocLocatorBuilder = exports.ProviderBuilder = exports.SingletonProvider = exports.LevelProvider = exports.MockedRepository = exports.HookedInjector = exports.TaggedProvider = exports.Provider = exports.ProviderRepository = exports.HookedProvider = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.InjectMetadataCollector = exports.createInjectFnDecorator = exports.createInjectDecorator = exports.createHookDecorator = exports.MethodsMetadataCollector = exports.IocInjector = exports.SimpleInjector = exports.ServiceLocator = exports.VendorMockProviderStorage = exports.MockProviderStorage = exports.MockProvider = void 0;
4
4
  var MockProvider_1 = require("./features/mock/MockProvider");
5
5
  Object.defineProperty(exports, "MockProvider", { enumerable: true, get: function () { return MockProvider_1.MockProvider; } });
6
6
  var MockProviderStorage_1 = require("./features/mock/MockProviderStorage");
@@ -50,8 +50,6 @@ var SimpleLocatorBuilder_1 = require("./features/simple/SimpleLocatorBuilder");
50
50
  Object.defineProperty(exports, "SimpleLocatorBuilder", { enumerable: true, get: function () { return SimpleLocatorBuilder_1.SimpleLocatorBuilder; } });
51
51
  var emptyHook_1 = require("./features/instanceHook/emptyHook");
52
52
  Object.defineProperty(exports, "emptyHook", { enumerable: true, get: function () { return emptyHook_1.emptyHook; } });
53
- var IScopeContext_1 = require("./features/scope/IScopeContext");
54
- Object.defineProperty(exports, "IScopeContextKey", { enumerable: true, get: function () { return IScopeContext_1.IScopeContextKey; } });
55
53
  var LocatorBuilder_1 = require("./features/LocatorBuilder");
56
54
  Object.defineProperty(exports, "LocatorBuilder", { enumerable: true, get: function () { return LocatorBuilder_1.LocatorBuilder; } });
57
55
  //# sourceMappingURL=index.js.map
package/cjm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AACA,6DAA4D;AAAnD,4GAAA,YAAY,OAAA;AACrB,2EAA0E;AAAjE,0HAAA,mBAAmB,OAAA;AAC5B,uFAAsF;AAA7E,sIAAA,yBAAyB,OAAA;AAGlC,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AAGvB,mEAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,0DAAyD;AAAhD,0GAAA,WAAW,OAAA;AAGpB,wGAAuG;AAA9F,oIAAA,wBAAwB,OAAA;AACjC,4EAAoF;AAA3E,iHAAA,mBAAmB,OAAA;AAC5B,mEAAsG;AAA7F,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AACvD,6FAA4F;AAAnF,kIAAA,uBAAuB,OAAA;AAEhC,wEAAuE;AAA9D,8HAAA,qBAAqB,OAAA;AAC9B,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAElC,yEAAwE;AAA/D,gHAAA,cAAc,OAAA;AAGvB,gEAA+D;AAAtD,wHAAA,kBAAkB,OAAA;AAC3B,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,yEAAwE;AAA/D,gHAAA,cAAc,OAAA;AAEvB,qEAAoE;AAA3D,oHAAA,gBAAgB,OAAA;AACzB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AACtB,wEAAuE;AAA9D,sHAAA,iBAAiB,OAAA;AAC1B,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,sEAAqE;AAA5D,sHAAA,iBAAiB,OAAA;AAC1B,+EAA8E;AAArE,4HAAA,oBAAoB,OAAA;AAC7B,+DAA8D;AAArD,sGAAA,SAAS,OAAA;AAClB,gEAAkE;AAAzD,iHAAA,gBAAgB,OAAA;AACzB,4DAA2D;AAAlD,gHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AACA,6DAA4D;AAAnD,4GAAA,YAAY,OAAA;AACrB,2EAA0E;AAAjE,0HAAA,mBAAmB,OAAA;AAC5B,uFAAsF;AAA7E,sIAAA,yBAAyB,OAAA;AAGlC,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AAGvB,mEAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,0DAAyD;AAAhD,0GAAA,WAAW,OAAA;AAGpB,wGAAuG;AAA9F,oIAAA,wBAAwB,OAAA;AACjC,4EAAoF;AAA3E,iHAAA,mBAAmB,OAAA;AAC5B,mEAAsG;AAA7F,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AACvD,6FAA4F;AAAnF,kIAAA,uBAAuB,OAAA;AAEhC,wEAAuE;AAA9D,8HAAA,qBAAqB,OAAA;AAC9B,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAElC,yEAAwE;AAA/D,gHAAA,cAAc,OAAA;AAGvB,gEAA+D;AAAtD,wHAAA,kBAAkB,OAAA;AAC3B,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,yEAAwE;AAA/D,gHAAA,cAAc,OAAA;AAEvB,qEAAoE;AAA3D,oHAAA,gBAAgB,OAAA;AACzB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AACtB,wEAAuE;AAA9D,sHAAA,iBAAiB,OAAA;AAC1B,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,sEAAqE;AAA5D,sHAAA,iBAAiB,OAAA;AAC1B,+EAA8E;AAArE,4HAAA,oBAAoB,OAAA;AAC7B,+DAA8D;AAArD,sGAAA,SAAS,OAAA;AAClB,4DAA2D;AAAlD,gHAAA,cAAc,OAAA"}
@@ -1,9 +1,9 @@
1
1
  import { IProvider, ProviderKey, ScopeOptions, Tag } from './IProvider';
2
2
  import { IProviderRepository } from './IProviderRepository';
3
- export declare class ProviderRepository implements IProviderRepository {
3
+ export declare class ProviderRepository implements IProviderRepository, ScopeOptions {
4
4
  private parent?;
5
5
  level: number;
6
- private tags;
6
+ tags: Tag[];
7
7
  private readonly providers;
8
8
  constructor(parent?: ProviderRepository, level?: number, tags?: Tag[]);
9
9
  add<T>(key: ProviderKey, provider: IProvider<T>): void;
@@ -11,4 +11,5 @@ export declare class ProviderRepository implements IProviderRepository {
11
11
  entries(filters: ScopeOptions): Array<[ProviderKey, IProvider<any>]>;
12
12
  dispose(): void;
13
13
  find<T>(key: ProviderKey): IProvider<T>;
14
+ private findLocally;
14
15
  }
@@ -1,26 +1,25 @@
1
1
  import { ProviderNotFoundError } from '../errors/ProviderNotFoundError';
2
- import { ProviderStorage } from './ProviderStorage';
3
2
  export class ProviderRepository {
4
3
  constructor(parent, level = 0, tags = []) {
5
4
  this.parent = parent;
6
5
  this.level = level;
7
6
  this.tags = tags;
8
- this.providers = new ProviderStorage();
7
+ this.providers = new Map();
9
8
  }
10
9
  add(key, provider) {
11
- this.providers.add(key, provider);
10
+ this.providers.set(key, provider);
12
11
  }
13
12
  clone(tags = [], parent = this) {
14
- const options = { level: parent.level + 1, tags };
15
- const repo = new ProviderRepository(parent, options.level, options.tags);
16
- for (const [key, provider] of parent.entries(options)) {
13
+ const repo = new ProviderRepository(parent, parent.level + 1, tags);
14
+ for (const [key, provider] of parent.entries(repo)) {
17
15
  repo.add(key, provider.clone());
18
16
  }
19
17
  return repo;
20
18
  }
21
19
  entries(filters) {
22
- const localProviders = this.providers.entries(filters);
23
- const parentProviders = this.parent ? this.parent.entries(filters) : [];
20
+ var _a, _b;
21
+ const localProviders = Array.from(this.providers.entries()).filter(([, value]) => value.isValid(filters));
22
+ const parentProviders = (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.entries(filters)) !== null && _b !== void 0 ? _b : [];
24
23
  return Array.from(new Map([...parentProviders, ...localProviders]).entries());
25
24
  }
26
25
  dispose() {
@@ -32,12 +31,15 @@ export class ProviderRepository {
32
31
  }
33
32
  find(key) {
34
33
  var _a, _b;
35
- const options = { level: this.level, tags: this.tags };
36
- const provider = (_a = this.providers.find(key, options)) !== null && _a !== void 0 ? _a : (_b = this.parent) === null || _b === void 0 ? void 0 : _b.find(key);
34
+ const provider = (_a = this.findLocally(key)) !== null && _a !== void 0 ? _a : (_b = this.parent) === null || _b === void 0 ? void 0 : _b.find(key);
37
35
  if (provider === undefined) {
38
36
  throw new ProviderNotFoundError(key.toString());
39
37
  }
40
38
  return provider;
41
39
  }
40
+ findLocally(key) {
41
+ const provider = this.providers.get(key);
42
+ return !provider || !provider.isValid(this) ? undefined : provider;
43
+ }
42
44
  }
43
45
  //# sourceMappingURL=ProviderRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderRepository.js","sourceRoot":"","sources":["../../lib/core/ProviderRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,kBAAkB;IAG3B,YAAoB,MAA2B,EAAS,QAAQ,CAAC,EAAU,OAAc,EAAE;QAAvE,WAAM,GAAN,MAAM,CAAqB;QAAS,UAAK,GAAL,KAAK,CAAI;QAAU,SAAI,GAAJ,IAAI,CAAY;QAF1E,cAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IAE2C,CAAC;IAE/F,GAAG,CAAI,GAAgB,EAAE,QAAsB;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAc,EAAE,EAAE,SAA6B,IAAI;QACrD,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACnD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,OAAqB;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YACrC,CAAC,CAAC,OAAO,EAAE,CAAC;SACf;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,IAAI,CAAI,GAAgB;;QACpB,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAI,GAAG,EAAE,OAAO,CAAC,mCAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAI,GAAG,CAAC,CAAC;QACnF,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACnD;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ"}
1
+ {"version":3,"file":"ProviderRepository.js","sourceRoot":"","sources":["../../lib/core/ProviderRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,MAAM,OAAO,kBAAkB;IAG3B,YAAoB,MAA2B,EAAS,QAAQ,CAAC,EAAS,OAAc,EAAE;QAAtE,WAAM,GAAN,MAAM,CAAqB;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,SAAI,GAAJ,IAAI,CAAY;QAFzE,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEyB,CAAC;IAE9F,GAAG,CAAI,GAAgB,EAAE,QAAsB;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAc,EAAE,EAAE,SAA6B,IAAI;QACrD,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,OAAqB;;QACzB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,MAAM,eAAe,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YACrC,CAAC,CAAC,OAAO,EAAE,CAAC;SACf;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,IAAI,CAAI,GAAgB;;QACpB,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,WAAW,CAAI,GAAG,CAAC,mCAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAI,GAAG,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACnD;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,WAAW,CAAI,GAAgB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;QACzD,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,CAAC;CACJ"}
@@ -10,8 +10,8 @@ export declare class ProviderBuilder<T> {
10
10
  withArgs(...extraArgs: any[]): this;
11
11
  withHook(hook: IInstanceHook): this;
12
12
  withArgsFn(fn: (l: IServiceLocator) => any[]): this;
13
- asSingleton(): this;
14
13
  forTags(tags: Tag[]): this;
15
14
  forLevel(level: number): this;
16
- build(): IProvider<T>;
15
+ asSingleton(): IProvider<T>;
16
+ asRequested(): IProvider<T>;
17
17
  }
@@ -14,7 +14,8 @@ export class ProviderBuilder {
14
14
  return new ProviderBuilder(() => value);
15
15
  }
16
16
  withArgs(...extraArgs) {
17
- this.withArgsFn(() => extraArgs);
17
+ const oldProvider = this.provider;
18
+ this.provider = new Provider((l, ...args) => oldProvider.resolve(l, ...args, ...extraArgs));
18
19
  return this;
19
20
  }
20
21
  withHook(hook) {
@@ -26,10 +27,6 @@ export class ProviderBuilder {
26
27
  this.provider = new Provider((l, ...args) => oldProvider.resolve(l, ...args, ...fn(l)));
27
28
  return this;
28
29
  }
29
- asSingleton() {
30
- this.provider = new SingletonProvider(this.provider);
31
- return this;
32
- }
33
30
  forTags(tags) {
34
31
  this.provider = new TaggedProvider(this.provider, tags);
35
32
  return this;
@@ -38,7 +35,10 @@ export class ProviderBuilder {
38
35
  this.provider = new LevelProvider(this.provider, [level, level]);
39
36
  return this;
40
37
  }
41
- build() {
38
+ asSingleton() {
39
+ return new SingletonProvider(this.provider);
40
+ }
41
+ asRequested() {
42
42
  return this.provider;
43
43
  }
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/features/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,OAAO,eAAe;IAWxB,YAAY,EAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAVD,MAAM,CAAC,eAAe,CAAI,KAAqB;QAC3C,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,YAAY,CAAI,KAAQ;QAC3B,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAMD,QAAQ,CAAC,GAAG,SAAgB;QACxB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,IAAmB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,EAAiC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,IAAW;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
1
+ {"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/features/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,OAAO,eAAe;IAWxB,YAAY,EAAwB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAVD,MAAM,CAAC,eAAe,CAAI,KAAqB;QAC3C,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,YAAY,CAAI,KAAQ;QAC3B,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAMD,QAAQ,CAAC,GAAG,SAAgB;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,IAAmB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,EAAiC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,IAAW;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
package/esm/index.d.ts CHANGED
@@ -34,6 +34,5 @@ export { ProviderBuilder } from './features/ProviderBuilder';
34
34
  export { IocLocatorBuilder } from './features/ioc/IocLocatorBuilder';
35
35
  export { SimpleLocatorBuilder } from './features/simple/SimpleLocatorBuilder';
36
36
  export { emptyHook } from './features/instanceHook/emptyHook';
37
- export { IScopeContextKey } from './features/scope/IScopeContext';
38
37
  export { LocatorBuilder } from './features/LocatorBuilder';
39
38
  export { ILocatorBuilder } from './features/ILocatorBuilder';
package/esm/index.js CHANGED
@@ -22,6 +22,5 @@ export { ProviderBuilder } from './features/ProviderBuilder';
22
22
  export { IocLocatorBuilder } from './features/ioc/IocLocatorBuilder';
23
23
  export { SimpleLocatorBuilder } from './features/simple/SimpleLocatorBuilder';
24
24
  export { emptyHook } from './features/instanceHook/emptyHook';
25
- export { IScopeContextKey } from './features/scope/IScopeContext';
26
25
  export { LocatorBuilder } from './features/LocatorBuilder';
27
26
  //# 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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAGxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAGxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "7.0.3",
3
+ "version": "7.1.0",
4
4
  "description": "Typescript IoC container",
5
5
  "author": "ibabkin <ibabkin@goodgamestudios.com>",
6
6
  "homepage": "https://github.com/IgorBabkin/service-locator/tree/master/packages/ts-ioc-container",
@@ -48,7 +48,7 @@
48
48
  "ts-jest": "27.0.5",
49
49
  "typescript": "4.4.3"
50
50
  },
51
- "gitHead": "62f304a90d4ac08c5a68af6e254818ca17daf8af",
51
+ "gitHead": "5c8793c581fc286ff759cda5324e248533075082",
52
52
  "peerDependencies": {
53
53
  "reflect-metadata": "^0.1.13"
54
54
  }
@@ -1,9 +0,0 @@
1
- import { IProvider, ProviderKey, ScopeOptions } from './IProvider';
2
- export declare class ProviderStorage {
3
- private readonly providers;
4
- add<T>(key: ProviderKey, provider: IProvider<T>): void;
5
- entries(filters: ScopeOptions): [ProviderKey, IProvider<any>][];
6
- values(): IterableIterator<IProvider<any>>;
7
- find<T>(key: ProviderKey, filters: ScopeOptions): IProvider<T> | undefined;
8
- clear(): void;
9
- }
@@ -1,49 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.ProviderStorage = void 0;
20
- var ProviderStorage = /** @class */ (function () {
21
- function ProviderStorage() {
22
- this.providers = new Map();
23
- }
24
- ProviderStorage.prototype.add = function (key, provider) {
25
- this.providers.set(key, provider);
26
- };
27
- ProviderStorage.prototype.entries = function (filters) {
28
- return Array.from(this.providers.entries()).filter(function (_a) {
29
- var _b = __read(_a, 2), value = _b[1];
30
- return value.isValid(filters);
31
- });
32
- };
33
- ProviderStorage.prototype.values = function () {
34
- return this.providers.values();
35
- };
36
- ProviderStorage.prototype.find = function (key, filters) {
37
- var provider = this.providers.get(key);
38
- if (!provider || !provider.isValid(filters)) {
39
- return undefined;
40
- }
41
- return provider;
42
- };
43
- ProviderStorage.prototype.clear = function () {
44
- this.providers.clear();
45
- };
46
- return ProviderStorage;
47
- }());
48
- exports.ProviderStorage = ProviderStorage;
49
- //# sourceMappingURL=ProviderStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProviderStorage.js","sourceRoot":"","sources":["../../lib/core/ProviderStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAEA;IAAA;QACqB,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAyBxE,CAAC;IAvBG,6BAAG,GAAH,UAAO,GAAgB,EAAE,QAAsB;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,iCAAO,GAAP,UAAQ,OAAqB;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAC,EAAS;gBAAT,KAAA,aAAS,EAAN,KAAK,QAAA;YAAM,OAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAtB,CAAsB,CAAC,CAAC;IAC9F,CAAC;IAED,gCAAM,GAAN;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,8BAAI,GAAJ,UAAQ,GAAgB,EAAE,OAAqB;QAC3C,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;QACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzC,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,+BAAK,GAAL;QACI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IACL,sBAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,0CAAe"}
@@ -1 +0,0 @@
1
- export declare const IScopeContextKey: unique symbol;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IScopeContextKey = void 0;
4
- exports.IScopeContextKey = Symbol.for('IScopeContext');
5
- //# sourceMappingURL=IScopeContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IScopeContext.js","sourceRoot":"","sources":["../../../lib/features/scope/IScopeContext.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import { IProvider, ProviderKey, ScopeOptions } from './IProvider';
2
- export declare class ProviderStorage {
3
- private readonly providers;
4
- add<T>(key: ProviderKey, provider: IProvider<T>): void;
5
- entries(filters: ScopeOptions): [ProviderKey, IProvider<any>][];
6
- values(): IterableIterator<IProvider<any>>;
7
- find<T>(key: ProviderKey, filters: ScopeOptions): IProvider<T> | undefined;
8
- clear(): void;
9
- }
@@ -1,25 +0,0 @@
1
- export class ProviderStorage {
2
- constructor() {
3
- this.providers = new Map();
4
- }
5
- add(key, provider) {
6
- this.providers.set(key, provider);
7
- }
8
- entries(filters) {
9
- return Array.from(this.providers.entries()).filter(([, value]) => value.isValid(filters));
10
- }
11
- values() {
12
- return this.providers.values();
13
- }
14
- find(key, filters) {
15
- const provider = this.providers.get(key);
16
- if (!provider || !provider.isValid(filters)) {
17
- return undefined;
18
- }
19
- return provider;
20
- }
21
- clear() {
22
- this.providers.clear();
23
- }
24
- }
25
- //# sourceMappingURL=ProviderStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProviderStorage.js","sourceRoot":"","sources":["../../lib/core/ProviderStorage.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IAA5B;QACqB,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAyBxE,CAAC;IAvBG,GAAG,CAAI,GAAgB,EAAE,QAAsB;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,OAAqB;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,CAAI,GAAgB,EAAE,OAAqB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;QACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzC,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACJ"}
@@ -1 +0,0 @@
1
- export declare const IScopeContextKey: unique symbol;
@@ -1,2 +0,0 @@
1
- export const IScopeContextKey = Symbol.for('IScopeContext');
2
- //# sourceMappingURL=IScopeContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IScopeContext.js","sourceRoot":"","sources":["../../../lib/features/scope/IScopeContext.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC"}