ts-ioc-container 20.3.2 → 20.3.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.
- package/README.md +3 -3
- package/cjm/container/IContainer.d.ts +3 -2
- package/cjm/index.d.ts +0 -1
- package/cjm/index.js.map +1 -1
- package/cjm/provider/IProvider.d.ts +2 -2
- package/cjm/provider/IProvider.js.map +1 -1
- package/cjm/provider/SingletonProvider.js +3 -3
- package/cjm/provider/SingletonProvider.js.map +1 -1
- package/cjm/utils/types.d.ts +0 -7
- package/cjm/utils/types.js +0 -8
- package/cjm/utils/types.js.map +1 -1
- package/esm/container/IContainer.d.ts +3 -2
- package/esm/index.d.ts +0 -1
- package/esm/index.js.map +1 -1
- package/esm/provider/IProvider.d.ts +2 -2
- package/esm/provider/IProvider.js.map +1 -1
- package/esm/provider/SingletonProvider.js +3 -3
- package/esm/provider/SingletonProvider.js.map +1 -1
- package/esm/utils/types.d.ts +0 -7
- package/esm/utils/types.js +1 -5
- package/esm/utils/types.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
## Advantages
|
|
9
|
-
- written on typescript
|
|
9
|
+
- written on `typescript`
|
|
10
10
|
- simple and lightweight (roughly it's just one file of **~100 lines**) :heart:
|
|
11
11
|
- clean API
|
|
12
|
-
- supports scopes
|
|
12
|
+
- supports `tagged scopes`
|
|
13
13
|
- fully test covered
|
|
14
14
|
- can be used with decorators `@inject`
|
|
15
15
|
- composable and open to extend
|
|
16
|
-
- awesome for testing (auto
|
|
16
|
+
- awesome for testing (auto mocking)
|
|
17
17
|
|
|
18
18
|
## Install
|
|
19
19
|
```shell script
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
|
|
2
|
-
import { constructor
|
|
2
|
+
import { constructor } from '../utils/types';
|
|
3
3
|
import { Registration } from '../registration/Registration';
|
|
4
4
|
export declare type InjectionToken<T = unknown> = constructor<T> | ProviderKey;
|
|
5
5
|
export interface Resolveable {
|
|
6
6
|
resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
|
|
7
7
|
}
|
|
8
|
-
export interface IContainer extends
|
|
8
|
+
export interface IContainer extends Resolveable {
|
|
9
9
|
createScope(tags?: Tag[]): IContainer;
|
|
10
10
|
register(value: Registration): this;
|
|
11
11
|
getProviders(): Map<ProviderKey, IProvider>;
|
|
12
12
|
removeScope(child: IContainer): void;
|
|
13
13
|
getInstances(): unknown[];
|
|
14
|
+
dispose(): void;
|
|
14
15
|
}
|
package/cjm/index.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ export { ContainerDisposedError } from './container/ContainerDisposedError';
|
|
|
15
15
|
export { Provider } from './provider/Provider';
|
|
16
16
|
export { ArgsFn } from './provider/ArgsProvider';
|
|
17
17
|
export { AutoMockedContainer } from './container/AutoMockedContainer';
|
|
18
|
-
export { Disposable } from './utils/types';
|
|
19
18
|
export { ProviderKey } from './provider/IProvider';
|
|
20
19
|
export { isProviderKey } from './provider/IProvider';
|
|
21
20
|
export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
|
package/cjm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+C;AAC/C,8EAA6E;AAE7E,0EAAyE;AAGzE,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAIlB,0EAAyE;AAAhE,8HAAA,qBAAqB,OAAA;AAC9B,+EAA8E;AAArE,sIAAA,yBAAyB,OAAA;AAClC,6EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAC/B,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,uEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+C;AAC/C,8EAA6E;AAE7E,0EAAyE;AAGzE,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAIlB,0EAAyE;AAAhE,8HAAA,qBAAqB,OAAA;AAC9B,+EAA8E;AAArE,sIAAA,yBAAyB,OAAA;AAClC,6EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAC/B,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,uEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;AAE5B,kDAAqD;AAA5C,0GAAA,aAAa,OAAA;AAEf,IAAM,EAAE,GACX,UAAI,GAAsB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAC9C,OAAA,UAAC,CAAa;QACV,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAY,GAAG,UAAK,IAAI;IAAzB,CAA0B;AAD9B,CAC8B,CAAC;AAHtB,QAAA,EAAE,MAGoB;AAEnC,SAAgB,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,yCAAmB,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,yCAAmB,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED,SAAgB,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,yCAAmB,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAFD,wBAEC;AAED,IAAM,iBAAiB,GAAG,IAAI,6CAAqB,CAAC,oBAAoB,CAAC,CAAC;AAEnE,IAAM,OAAO,GAChB;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACf,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO;;YAAK,OAAA,CAAA,KAAA,EAAE,CAAC,OAAO,CAAC,CAAA,CAAC,OAAO,oCAAI,IAAI;QAA3B,CAA4B,CAAC,CAAC;IACzF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,OAAO,WAMd;AACC,IAAM,WAAW,GAAmB,UAAC,MAAM;IAC9C,IAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,CAAC;AACtF,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB;AACK,IAAM,MAAM,GACf,UAAC,GAAgB;IACjB,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;IACpF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,MAAM,UAMb"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { InjectionToken, Resolveable } from '../container/IContainer';
|
|
2
|
-
import { Disposable } from '../utils/types';
|
|
3
2
|
export declare type ResolveDependency<T> = (container: Resolveable, ...args: unknown[]) => T;
|
|
4
3
|
export declare type Tag = string;
|
|
5
4
|
export interface Tagged {
|
|
6
5
|
readonly tags: Tag[];
|
|
7
6
|
}
|
|
8
|
-
export interface IProvider<T = unknown>
|
|
7
|
+
export interface IProvider<T = unknown> {
|
|
9
8
|
clone(): IProvider<T>;
|
|
10
9
|
resolve(container: Resolveable, ...args: unknown[]): T;
|
|
11
10
|
isValid(filters: Tagged): boolean;
|
|
11
|
+
dispose(): void;
|
|
12
12
|
}
|
|
13
13
|
export declare type ProviderKey = string | symbol;
|
|
14
14
|
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":";;;AAsBA,SAAgB,aAAa,CAAI,KAAwB;IACrD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,sCAEC"}
|
|
@@ -41,7 +41,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
43
|
exports.SingletonProvider = void 0;
|
|
44
|
-
var types_1 = require("../utils/types");
|
|
45
44
|
var ProviderDecorator_1 = require("./ProviderDecorator");
|
|
46
45
|
var SingletonProvider = /** @class */ (function (_super) {
|
|
47
46
|
__extends(SingletonProvider, _super);
|
|
@@ -60,15 +59,16 @@ var SingletonProvider = /** @class */ (function (_super) {
|
|
|
60
59
|
};
|
|
61
60
|
SingletonProvider.prototype.resolve = function (container) {
|
|
62
61
|
var _a;
|
|
62
|
+
var _b;
|
|
63
63
|
var args = [];
|
|
64
64
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
65
65
|
args[_i - 1] = arguments[_i];
|
|
66
66
|
}
|
|
67
67
|
if (this.instance === null) {
|
|
68
68
|
var instance = (_a = this.provider).resolve.apply(_a, __spreadArray([container], __read(args), false));
|
|
69
|
-
this.instance =
|
|
69
|
+
this.instance = { value: instance };
|
|
70
70
|
}
|
|
71
|
-
return this.instance.value;
|
|
71
|
+
return (_b = this.instance) === null || _b === void 0 ? void 0 : _b.value;
|
|
72
72
|
};
|
|
73
73
|
return SingletonProvider;
|
|
74
74
|
}(ProviderDecorator_1.ProviderDecorator));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/provider/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/provider/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yDAAwD;AAKxD;IAA0C,qCAAoB;IAG1D,2BAA6B,QAAsB;QAAnD,YACI,kBAAM,QAAQ,CAAC,SAClB;QAF4B,cAAQ,GAAR,QAAQ,CAAc;QAF3C,cAAQ,GAAoB,IAAI,CAAC;;IAIzC,CAAC;IAED,iCAAK,GAAL;QACI,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,mCAAO,GAAP,UAAQ,SAAsB;;;QAAE,cAAkB;aAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;YAAlB,6BAAkB;;QAC9C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAM,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,0BAAC,SAAS,UAAK,IAAI,UAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SACvC;QAED,OAAO,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAU,CAAC;IACrC,CAAC;IACL,wBAAC;AAAD,CAAC,AAxBD,CAA0C,qCAAiB,GAwB1D;AAxBY,8CAAiB"}
|
package/cjm/utils/types.d.ts
CHANGED
package/cjm/utils/types.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Box = void 0;
|
|
4
|
-
var Box = /** @class */ (function () {
|
|
5
|
-
function Box(value) {
|
|
6
|
-
this.value = value;
|
|
7
|
-
}
|
|
8
|
-
return Box;
|
|
9
|
-
}());
|
|
10
|
-
exports.Box = Box;
|
|
11
3
|
//# sourceMappingURL=types.js.map
|
package/cjm/utils/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/utils/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/utils/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
|
|
2
|
-
import { constructor
|
|
2
|
+
import { constructor } from '../utils/types';
|
|
3
3
|
import { Registration } from '../registration/Registration';
|
|
4
4
|
export declare type InjectionToken<T = unknown> = constructor<T> | ProviderKey;
|
|
5
5
|
export interface Resolveable {
|
|
6
6
|
resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
|
|
7
7
|
}
|
|
8
|
-
export interface IContainer extends
|
|
8
|
+
export interface IContainer extends Resolveable {
|
|
9
9
|
createScope(tags?: Tag[]): IContainer;
|
|
10
10
|
register(value: Registration): this;
|
|
11
11
|
getProviders(): Map<ProviderKey, IProvider>;
|
|
12
12
|
removeScope(child: IContainer): void;
|
|
13
13
|
getInstances(): unknown[];
|
|
14
|
+
dispose(): void;
|
|
14
15
|
}
|
package/esm/index.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ export { ContainerDisposedError } from './container/ContainerDisposedError';
|
|
|
15
15
|
export { Provider } from './provider/Provider';
|
|
16
16
|
export { ArgsFn } from './provider/ArgsProvider';
|
|
17
17
|
export { AutoMockedContainer } from './container/AutoMockedContainer';
|
|
18
|
-
export { Disposable } from './utils/types';
|
|
19
18
|
export { ProviderKey } from './provider/IProvider';
|
|
20
19
|
export { isProviderKey } from './provider/IProvider';
|
|
21
20
|
export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
|
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;AAE7E,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,mCAAmC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
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;AAE7E,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,mCAAmC,CAAC;AAC9E,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,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,KAAqB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,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,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,OAAO,GAChB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC;AACN,MAAM,CAAC,MAAM,WAAW,GAAmB,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACtF,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GACf,CAAC,GAAgB,EAAkB,EAAE,CACrC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { InjectionToken, Resolveable } from '../container/IContainer';
|
|
2
|
-
import { Disposable } from '../utils/types';
|
|
3
2
|
export declare type ResolveDependency<T> = (container: Resolveable, ...args: unknown[]) => T;
|
|
4
3
|
export declare type Tag = string;
|
|
5
4
|
export interface Tagged {
|
|
6
5
|
readonly tags: Tag[];
|
|
7
6
|
}
|
|
8
|
-
export interface IProvider<T = unknown>
|
|
7
|
+
export interface IProvider<T = unknown> {
|
|
9
8
|
clone(): IProvider<T>;
|
|
10
9
|
resolve(container: Resolveable, ...args: unknown[]): T;
|
|
11
10
|
isValid(filters: Tagged): boolean;
|
|
11
|
+
dispose(): void;
|
|
12
12
|
}
|
|
13
13
|
export declare type ProviderKey = string | symbol;
|
|
14
14
|
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,aAAa,CAAI,KAAwB;IACrD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Box } from '../utils/types';
|
|
2
1
|
import { ProviderDecorator } from './ProviderDecorator';
|
|
3
2
|
export class SingletonProvider extends ProviderDecorator {
|
|
4
3
|
constructor(provider) {
|
|
@@ -14,11 +13,12 @@ export class SingletonProvider extends ProviderDecorator {
|
|
|
14
13
|
this.provider.dispose();
|
|
15
14
|
}
|
|
16
15
|
resolve(container, ...args) {
|
|
16
|
+
var _a;
|
|
17
17
|
if (this.instance === null) {
|
|
18
18
|
const instance = this.provider.resolve(container, ...args);
|
|
19
|
-
this.instance =
|
|
19
|
+
this.instance = { value: instance };
|
|
20
20
|
}
|
|
21
|
-
return this.instance.value;
|
|
21
|
+
return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.value;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=SingletonProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/provider/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../lib/provider/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,OAAO,iBAAqB,SAAQ,iBAAoB;IAG1D,YAA6B,QAAsB;QAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAc;QAF3C,aAAQ,GAAoB,IAAI,CAAC;IAIzC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,SAAsB,EAAE,GAAG,IAAe;;QAC9C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SACvC;QAED,OAAO,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAU,CAAC;IACrC,CAAC;CACJ"}
|
package/esm/utils/types.d.ts
CHANGED
package/esm/utils/types.js
CHANGED
package/esm/utils/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/utils/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/utils/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "20.3.
|
|
3
|
+
"version": "20.3.4",
|
|
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",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"npm-run-all": "4.1.5",
|
|
45
45
|
"reflect-metadata": "^0.1.13",
|
|
46
46
|
"rimraf": "3.0.2",
|
|
47
|
-
"ts-constructor-injector": "^3.1.
|
|
47
|
+
"ts-constructor-injector": "^3.1.3",
|
|
48
48
|
"ts-jest": "27.0.5",
|
|
49
49
|
"typescript": "4.4.3"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "89d7f392c696cd907c521e1cd031a40f034ea8b7"
|
|
52
52
|
}
|