ts-ioc-container 12.1.0 → 12.2.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.
@@ -4,6 +4,7 @@ import { IContainer } from './IContainer';
4
4
  import { IContainerProvider } from './IContainerProvider';
5
5
  import { IInjector } from '../../core/IInjector';
6
6
  import { IInstanceHook } from '../../core/IInstanceHook';
7
+ import { constructor } from '../../helpers/types';
7
8
  export declare class Container implements IContainer {
8
9
  private locator;
9
10
  static fromInjector(injector: IInjector): Container;
@@ -12,5 +13,6 @@ export declare class Container implements IContainer {
12
13
  createScope(tags?: Tag[]): IContainer;
13
14
  register(provider: IContainerProvider<unknown>): this;
14
15
  resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
16
+ resolveDecorated<T>(...Constructors: constructor<T>[]): T | undefined;
15
17
  dispose(): void;
16
18
  }
@@ -53,6 +53,17 @@ var Container = /** @class */ (function () {
53
53
  }
54
54
  return (_a = this.locator).resolve.apply(_a, __spreadArray([key], __read(args), false));
55
55
  };
56
+ Container.prototype.resolveDecorated = function () {
57
+ var Constructors = [];
58
+ for (var _i = 0; _i < arguments.length; _i++) {
59
+ Constructors[_i] = arguments[_i];
60
+ }
61
+ if (Constructors.length === 0) {
62
+ return undefined;
63
+ }
64
+ var _a = __read(Constructors), first = _a[0], rest = _a.slice(1);
65
+ return this.locator.resolve(first, this.resolveDecorated.apply(this, __spreadArray([], __read(rest), false)));
66
+ };
56
67
  Container.prototype.dispose = function () {
57
68
  this.locator.dispose();
58
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4DAA2D;AAG3D;IAKI,mBAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAJzC,sBAAY,GAAnB,UAAoB,QAAmB;QACnC,OAAO,IAAI,SAAS,CAAC,IAAI,+BAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,2BAAO,GAAP,UAAQ,IAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAW,GAAX,UAAY,IAAY;QACpB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,4BAAQ,GAAR,UAAS,QAAqC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,2BAAO,GAAP,UAAW,GAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC7C,OAAO,CAAA,KAAA,IAAI,CAAC,OAAO,CAAA,CAAC,OAAO,0BAAC,GAAG,UAAK,IAAI,WAAE;IAC9C,CAAC;IAED,2BAAO,GAAP;QACI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACL,gBAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,8BAAS"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4DAA2D;AAI3D;IAKI,mBAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAJzC,sBAAY,GAAnB,UAAoB,QAAmB;QACnC,OAAO,IAAI,SAAS,CAAC,IAAI,+BAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,2BAAO,GAAP,UAAQ,IAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAW,GAAX,UAAY,IAAY;QACpB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,4BAAQ,GAAR,UAAS,QAAqC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,2BAAO,GAAP,UAAW,GAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC7C,OAAO,CAAA,KAAA,IAAI,CAAC,OAAO,CAAA,CAAC,OAAO,0BAAC,GAAG,UAAK,IAAI,WAAE;IAC9C,CAAC;IAED,oCAAgB,GAAhB;QAAoB,sBAAiC;aAAjC,UAAiC,EAAjC,qBAAiC,EAAjC,IAAiC;YAAjC,iCAAiC;;QACjD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,SAAS,CAAC;SACpB;QACK,IAAA,KAAA,OAAmB,YAAY,CAAA,EAA9B,KAAK,QAAA,EAAK,IAAI,cAAgB,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,OAArB,IAAI,2BAAqB,IAAI,WAAE,CAAC;IACvE,CAAC;IAED,2BAAO,GAAP;QACI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACL,gBAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,8BAAS"}
@@ -4,6 +4,7 @@ import { IContainer } from './IContainer';
4
4
  import { IContainerProvider } from './IContainerProvider';
5
5
  import { IInjector } from '../../core/IInjector';
6
6
  import { IInstanceHook } from '../../core/IInstanceHook';
7
+ import { constructor } from '../../helpers/types';
7
8
  export declare class Container implements IContainer {
8
9
  private locator;
9
10
  static fromInjector(injector: IInjector): Container;
@@ -12,5 +13,6 @@ export declare class Container implements IContainer {
12
13
  createScope(tags?: Tag[]): IContainer;
13
14
  register(provider: IContainerProvider<unknown>): this;
14
15
  resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
16
+ resolveDecorated<T>(...Constructors: constructor<T>[]): T | undefined;
15
17
  dispose(): void;
16
18
  }
@@ -20,6 +20,13 @@ export class Container {
20
20
  resolve(key, ...args) {
21
21
  return this.locator.resolve(key, ...args);
22
22
  }
23
+ resolveDecorated(...Constructors) {
24
+ if (Constructors.length === 0) {
25
+ return undefined;
26
+ }
27
+ const [first, ...rest] = Constructors;
28
+ return this.locator.resolve(first, this.resolveDecorated(...rest));
29
+ }
23
30
  dispose() {
24
31
  this.locator.dispose();
25
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,MAAM,OAAO,SAAS;IAKlB,YAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAJhD,MAAM,CAAC,YAAY,CAAC,QAAmB;QACnC,OAAO,IAAI,SAAS,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,OAAO,CAAC,IAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,QAAqC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAI,GAAsB,EAAE,GAAG,IAAW;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACJ"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,MAAM,OAAO,SAAS;IAKlB,YAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAJhD,MAAM,CAAC,YAAY,CAAC,QAAmB;QACnC,OAAO,IAAI,SAAS,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,OAAO,CAAC,IAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,QAAqC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAI,GAAsB,EAAE,GAAG,IAAW;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB,CAAI,GAAG,YAA8B;QACjD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "12.1.0",
3
+ "version": "12.2.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",
@@ -45,9 +45,9 @@
45
45
  "npm-run-all": "4.1.5",
46
46
  "reflect-metadata": "^0.1.13",
47
47
  "rimraf": "3.0.2",
48
- "ts-constructor-injector": "^1.5.2",
48
+ "ts-constructor-injector": "^1.5.3",
49
49
  "ts-jest": "27.0.5",
50
50
  "typescript": "4.4.3"
51
51
  },
52
- "gitHead": "2442059baf4e2b529824782ecbd8415f90b08758"
52
+ "gitHead": "5ab2ef97e256bc439b19b549d324e9019b8117af"
53
53
  }