@spinajs/di 2.0.38 → 2.0.44
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/lib/binder.d.ts +21 -1
- package/lib/binder.js +33 -2
- package/lib/binder.js.map +1 -1
- package/lib/container-cache.d.ts +4 -0
- package/lib/container-cache.js +7 -0
- package/lib/container-cache.js.map +1 -1
- package/lib/container.d.ts +8 -7
- package/lib/container.js +111 -27
- package/lib/container.js.map +1 -1
- package/lib/decorators.d.ts +22 -1
- package/lib/decorators.js +45 -7
- package/lib/decorators.js.map +1 -1
- package/lib/enums.d.ts +15 -1
- package/lib/enums.js +14 -0
- package/lib/enums.js.map +1 -1
- package/lib/helpers.d.ts +3 -3
- package/lib/helpers.js +7 -7
- package/lib/helpers.js.map +1 -1
- package/lib/interfaces.d.ts +62 -12
- package/lib/interfaces.js +14 -9
- package/lib/interfaces.js.map +1 -1
- package/lib/root.d.ts +23 -6
- package/lib/root.js +23 -1
- package/lib/root.js.map +1 -1
- package/package.json +3 -3
package/lib/binder.d.ts
CHANGED
|
@@ -11,9 +11,29 @@ export declare class Binder<T> implements IBind {
|
|
|
11
11
|
* Add plain value to container. If value exists, it overrides content in container cache
|
|
12
12
|
*
|
|
13
13
|
* @param type - name of added value
|
|
14
|
+
* @param override - if true, any value registered before is overriden by new one
|
|
14
15
|
* @returns
|
|
15
16
|
*/
|
|
16
|
-
asValue(type: string,
|
|
17
|
+
asValue(type: string, override?: boolean): this;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* Add plain value to container, value is stored in hashmap for quick access
|
|
21
|
+
* eg. we have multiple value converters and we wanc o(1) access, instead searching for
|
|
22
|
+
* converter for specific type
|
|
23
|
+
*
|
|
24
|
+
* @param type - name of added value
|
|
25
|
+
* @param key - hashmap key
|
|
26
|
+
*/
|
|
27
|
+
asMapValue(type: string, key: string): this;
|
|
28
|
+
/**
|
|
29
|
+
* Register type as itself. Usefull when we also want to register type as self instead of base class
|
|
30
|
+
* so we can retrieve just this specific instance.
|
|
31
|
+
* @returns this
|
|
32
|
+
*/
|
|
17
33
|
asSelf(): this;
|
|
34
|
+
/**
|
|
35
|
+
* Mark type as SingleInstance resolve strategy.
|
|
36
|
+
* @returns this
|
|
37
|
+
*/
|
|
18
38
|
singleInstance(): this;
|
|
19
39
|
}
|
package/lib/binder.js
CHANGED
|
@@ -21,10 +21,11 @@ class Binder {
|
|
|
21
21
|
* Add plain value to container. If value exists, it overrides content in container cache
|
|
22
22
|
*
|
|
23
23
|
* @param type - name of added value
|
|
24
|
+
* @param override - if true, any value registered before is overriden by new one
|
|
24
25
|
* @returns
|
|
25
26
|
*/
|
|
26
|
-
asValue(type,
|
|
27
|
-
if (
|
|
27
|
+
asValue(type, override = false) {
|
|
28
|
+
if (override) {
|
|
28
29
|
if (this.container.Cache.has(type)) {
|
|
29
30
|
this.container.Cache.remove(type);
|
|
30
31
|
}
|
|
@@ -32,6 +33,32 @@ class Binder {
|
|
|
32
33
|
this.container.Cache.add(type, this.implementation);
|
|
33
34
|
return this;
|
|
34
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* Add plain value to container, value is stored in hashmap for quick access
|
|
39
|
+
* eg. we have multiple value converters and we wanc o(1) access, instead searching for
|
|
40
|
+
* converter for specific type
|
|
41
|
+
*
|
|
42
|
+
* @param type - name of added value
|
|
43
|
+
* @param key - hashmap key
|
|
44
|
+
*/
|
|
45
|
+
asMapValue(type, key) {
|
|
46
|
+
let map = null;
|
|
47
|
+
if (this.container.Cache.has(type)) {
|
|
48
|
+
map = this.container.Cache.get(type)[0];
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
map = new Map();
|
|
52
|
+
this.container.Cache.add(type, map);
|
|
53
|
+
}
|
|
54
|
+
map.set(key, this.implementation);
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Register type as itself. Usefull when we also want to register type as self instead of base class
|
|
59
|
+
* so we can retrieve just this specific instance.
|
|
60
|
+
* @returns this
|
|
61
|
+
*/
|
|
35
62
|
asSelf() {
|
|
36
63
|
if (!this.isConstructor || this.isFactory) {
|
|
37
64
|
throw new exceptions_1.BindException('cannot register as self non class');
|
|
@@ -40,6 +67,10 @@ class Binder {
|
|
|
40
67
|
this.container.Registry.register(this.implementation, this.implementation);
|
|
41
68
|
return this;
|
|
42
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Mark type as SingleInstance resolve strategy.
|
|
72
|
+
* @returns this
|
|
73
|
+
*/
|
|
43
74
|
singleInstance() {
|
|
44
75
|
const descriptor = {
|
|
45
76
|
inject: [],
|
package/lib/binder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binder.js","sourceRoot":"","sources":["../src/binder.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,6CAAqD;AACrD,mCAAsC;AACtC,uCAAsC;AAGtC,wBAAkC;AAElC,MAAa,MAAM;IAIjB,YAAoB,cAAwD,EAAU,SAAqB;QAAvF,mBAAc,GAAd,cAAc,CAA0C;QAAU,cAAS,GAAT,SAAS,CAAY;QACzG,IAAI,CAAC,SAAS,GAAG,IAAA,mBAAS,EAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAA,gBAAa,EAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,EAAE,CAAI,IAAuB;QAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"binder.js","sourceRoot":"","sources":["../src/binder.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,6CAAqD;AACrD,mCAAsC;AACtC,uCAAsC;AAGtC,wBAAkC;AAElC,MAAa,MAAM;IAIjB,YAAoB,cAAwD,EAAU,SAAqB;QAAvF,mBAAc,GAAd,cAAc,CAA0C;QAAU,cAAS,GAAT,SAAS,CAAY;QACzG,IAAI,CAAC,SAAS,GAAG,IAAA,mBAAS,EAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAA,gBAAa,EAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,EAAE,CAAI,IAAuB;QAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;QACpC,IAAI,QAAQ,EAAE;YACZ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACnC;SACF;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAY,EAAE,GAAW;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAkB,CAAC;SAC1D;aAAM;YACL,GAAG,GAAG,IAAI,GAAG,EAAe,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACrC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;YACzC,MAAM,IAAI,0BAAa,CAAC,mCAAmC,CAAC,CAAC;SAC9D;QAED,sDAAsD;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,MAAM,UAAU,GAA+B;YAC7C,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,mBAAW,CAAC,SAAS;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzC,MAAM,IAAI,0BAAa,CAAC,4CAA4C,CAAC,CAAC;SACvE;aAAM;YACJ,IAAI,CAAC,cAAsB,CAAC,GAAG,kCAAqB,EAAE,CAAC,GAAG,UAAU,CAAC;SACvE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtFD,wBAsFC"}
|
package/lib/container-cache.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ export declare class ContainerCache {
|
|
|
5
5
|
private container;
|
|
6
6
|
private cache;
|
|
7
7
|
constructor(container: IContainer);
|
|
8
|
+
[Symbol.iterator](): Generator<{
|
|
9
|
+
key: string;
|
|
10
|
+
value: any;
|
|
11
|
+
}, void, unknown>;
|
|
8
12
|
remove(key: string | Class<any> | TypedArray<any>, parent?: boolean): void;
|
|
9
13
|
add(key: string | Class<any> | object, instance: any): void;
|
|
10
14
|
has(key: string | Class<any> | object | TypedArray<any>, parent?: boolean): boolean;
|
package/lib/container-cache.js
CHANGED
|
@@ -10,6 +10,13 @@ class ContainerCache {
|
|
|
10
10
|
// so we can inject container if needed
|
|
11
11
|
this.add(container, container);
|
|
12
12
|
}
|
|
13
|
+
*[Symbol.iterator]() {
|
|
14
|
+
for (const [key, value] of this.cache) {
|
|
15
|
+
for (const v of value) {
|
|
16
|
+
yield { key, value: v };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
13
20
|
remove(key, parent) {
|
|
14
21
|
if (this.has(key)) {
|
|
15
22
|
this.cache.delete((0, helpers_1.getTypeName)(key));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-cache.js","sourceRoot":"","sources":["../src/container-cache.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"container-cache.js","sourceRoot":"","sources":["../src/container-cache.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAIxC,MAAa,cAAc;IAGzB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QAEtC,yBAAyB;QACzB,uCAAuC;QACvC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACrC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;gBACrB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aACzB;SACF;IACH,CAAC;IAEM,MAAM,CAAC,GAA0C,EAAE,MAAgB;QACxE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACpC;IACH,CAAC;IAEM,GAAG,CAAC,GAAiC,EAAE,QAAa;QACzD,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;SACF;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,GAAG,CAAC,GAAmD,EAAE,MAAgB;QAC9E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,GAAG,CAAC,GAA0C,EAAE,MAAgB;QACrE,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF;AArED,wCAqEC"}
|
package/lib/container.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import 'reflect-metadata';
|
|
3
3
|
import { TypedArray } from './array';
|
|
4
|
-
import { IBind, IContainer, IInjectDescriptor, IResolvedInjection, IToInject,
|
|
4
|
+
import { IBind, IContainer, IInjectDescriptor, IResolvedInjection, IToInject, AsyncService, ResolvableObject } from './interfaces';
|
|
5
5
|
import { Class, Factory } from './types';
|
|
6
6
|
import { EventEmitter } from 'events';
|
|
7
7
|
import { Registry } from './registry';
|
|
@@ -34,6 +34,7 @@ export declare class Container extends EventEmitter implements IContainer {
|
|
|
34
34
|
* Clears container registry and cache. shorthand for container.clearCache() && container.clearRegistry()
|
|
35
35
|
*/
|
|
36
36
|
clear(): void;
|
|
37
|
+
dispose(): Promise<void>;
|
|
37
38
|
/**
|
|
38
39
|
* clears container registered types information
|
|
39
40
|
*/
|
|
@@ -48,7 +49,7 @@ export declare class Container extends EventEmitter implements IContainer {
|
|
|
48
49
|
* @throws {@link InvalidArgument} if type is null or undefined
|
|
49
50
|
*/
|
|
50
51
|
register<T>(implementation: Class<T> | Factory<T> | ResolvableObject): IBind;
|
|
51
|
-
unregister<T>(implementation: Class<T> | Factory<T> | ResolvableObject): void;
|
|
52
|
+
unregister<T>(implementation: string | Class<T> | Factory<T> | ResolvableObject): void;
|
|
52
53
|
uncache<T>(implementation: string | Class<T> | TypedArray<T>, parent?: boolean): void;
|
|
53
54
|
/**
|
|
54
55
|
* Creates child DI container.
|
|
@@ -85,7 +86,7 @@ export declare class Container extends EventEmitter implements IContainer {
|
|
|
85
86
|
* @param type - what to resolve, can be class definition or factory function
|
|
86
87
|
* @param options - options passed to constructor / factory
|
|
87
88
|
*/
|
|
88
|
-
resolve<T>(type: string, options?: unknown[], check?: boolean): T;
|
|
89
|
+
resolve<T>(type: string, options?: unknown[], check?: boolean, tType?: Class<T>): T;
|
|
89
90
|
resolve<T>(type: string, check?: boolean): T;
|
|
90
91
|
/**
|
|
91
92
|
*
|
|
@@ -94,8 +95,8 @@ export declare class Container extends EventEmitter implements IContainer {
|
|
|
94
95
|
* @param type - what to resolve, can be class definition or factory function
|
|
95
96
|
* @param options - options passed to constructor / factory
|
|
96
97
|
*/
|
|
97
|
-
resolve<T>(type: Class<T>, options?: unknown[], check?: boolean): T extends
|
|
98
|
-
resolve<T>(type: Class<T>, check?: boolean): T extends
|
|
98
|
+
resolve<T>(type: Class<T>, options?: unknown[], check?: boolean): T extends AsyncService ? Promise<T> : T;
|
|
99
|
+
resolve<T>(type: Class<T>, check?: boolean): T extends AsyncService ? Promise<T> : T;
|
|
99
100
|
/**
|
|
100
101
|
*
|
|
101
102
|
* Resolves all instances of given class. Under single definition can be registered multiple implementations.
|
|
@@ -105,8 +106,8 @@ export declare class Container extends EventEmitter implements IContainer {
|
|
|
105
106
|
* @param check - strict check if serivice is registered in container before resolving. Default behavior is to not check and resolve
|
|
106
107
|
*
|
|
107
108
|
*/
|
|
108
|
-
resolve<T>(type: TypedArray<T>, options?: unknown[], check?: boolean): T extends
|
|
109
|
-
resolve<T>(type: TypedArray<T>, check?: boolean): T extends
|
|
109
|
+
resolve<T>(type: TypedArray<T>, options?: unknown[], check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
|
|
110
|
+
resolve<T>(type: TypedArray<T>, check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
|
|
110
111
|
getRegisteredTypes<T>(service: string | Class<T> | TypedArray<T>, parent?: boolean): (Class<unknown> | Factory<unknown>)[];
|
|
111
112
|
private resolveType;
|
|
112
113
|
protected getNewInstance(typeToCreate: Class<unknown> | Factory<unknown>, a?: IResolvedInjection[], options?: unknown[]): Promise<unknown> | unknown;
|
package/lib/container.js
CHANGED
|
@@ -13,6 +13,7 @@ const binder_1 = require("./binder");
|
|
|
13
13
|
const registry_1 = require("./registry");
|
|
14
14
|
const container_cache_1 = require("./container-cache");
|
|
15
15
|
const lodash_1 = require("lodash");
|
|
16
|
+
const exceptions_2 = require("./exceptions");
|
|
16
17
|
/**
|
|
17
18
|
* Dependency injection container implementation
|
|
18
19
|
*/
|
|
@@ -41,6 +42,16 @@ class Container extends events_1.EventEmitter {
|
|
|
41
42
|
clear() {
|
|
42
43
|
this.clearCache();
|
|
43
44
|
}
|
|
45
|
+
async dispose() {
|
|
46
|
+
for (const entry of this.cache) {
|
|
47
|
+
if (entry.value instanceof interfaces_1.Service) {
|
|
48
|
+
await entry.value.dispose();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this.clearCache();
|
|
52
|
+
this.clearRegistry();
|
|
53
|
+
this.emit('di.dispose');
|
|
54
|
+
}
|
|
44
55
|
/**
|
|
45
56
|
* clears container registered types information
|
|
46
57
|
*/
|
|
@@ -108,7 +119,7 @@ class Container extends events_1.EventEmitter {
|
|
|
108
119
|
* @param options - options passed to constructor / factory
|
|
109
120
|
* @param check - strict check if serivice is registered in container before resolving. Default behavior is to not check and resolve
|
|
110
121
|
*/
|
|
111
|
-
resolve(type, options, check) {
|
|
122
|
+
resolve(type, options, check, tType) {
|
|
112
123
|
if (!type) {
|
|
113
124
|
throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
|
|
114
125
|
}
|
|
@@ -155,8 +166,12 @@ class Container extends events_1.EventEmitter {
|
|
|
155
166
|
targetType = [type];
|
|
156
167
|
}
|
|
157
168
|
}
|
|
158
|
-
//
|
|
159
|
-
|
|
169
|
+
// if we have target function callback
|
|
170
|
+
// we can select whitch of targetType to resolve
|
|
171
|
+
//
|
|
172
|
+
// if not, by default last registered type is resolved
|
|
173
|
+
const fType = tType !== null && tType !== void 0 ? tType : targetType[targetType.length - 1];
|
|
174
|
+
const rValue = this.resolveType(sourceType, fType, opt);
|
|
160
175
|
return rValue;
|
|
161
176
|
}
|
|
162
177
|
}
|
|
@@ -186,13 +201,13 @@ class Container extends events_1.EventEmitter {
|
|
|
186
201
|
return target;
|
|
187
202
|
};
|
|
188
203
|
const emit = (target) => {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
this.emit(`di.resolved.${
|
|
204
|
+
const sourceTypeName = (0, helpers_1.getTypeName)(sourceType);
|
|
205
|
+
const targetTypeName = (0, helpers_1.getTypeName)(targetType);
|
|
206
|
+
// firs event to emit that particular type was resolved
|
|
207
|
+
this.emit(`di.resolved.${targetTypeName}`, this, target);
|
|
208
|
+
// emit that source type was resolved
|
|
209
|
+
if (targetTypeName !== sourceTypeName) {
|
|
210
|
+
this.emit(`di.resolved.${sourceTypeName}`, this, target);
|
|
196
211
|
}
|
|
197
212
|
};
|
|
198
213
|
const getCachedInstance = (e, parent) => {
|
|
@@ -202,6 +217,28 @@ class Container extends events_1.EventEmitter {
|
|
|
202
217
|
}
|
|
203
218
|
return null;
|
|
204
219
|
};
|
|
220
|
+
const getCachedInstances = (e, parent) => {
|
|
221
|
+
if (this.isResolved(e, parent)) {
|
|
222
|
+
const rArray = this.get(e, parent);
|
|
223
|
+
return (0, lodash_1.isArray)(rArray) ? rArray : [rArray];
|
|
224
|
+
}
|
|
225
|
+
return null;
|
|
226
|
+
};
|
|
227
|
+
const createNewInstance = (t, i, options) => {
|
|
228
|
+
const instance = this.getNewInstance(t, i, options);
|
|
229
|
+
if ((0, helpers_1.isPromise)(instance)) {
|
|
230
|
+
return instance.then((r) => {
|
|
231
|
+
setCache(r);
|
|
232
|
+
emit(r);
|
|
233
|
+
return r;
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
setCache(instance);
|
|
238
|
+
emit(instance);
|
|
239
|
+
return instance;
|
|
240
|
+
}
|
|
241
|
+
};
|
|
205
242
|
const resolve = (d, t, i) => {
|
|
206
243
|
if (d.resolver === enums_1.ResolveType.NewInstance) {
|
|
207
244
|
const instance = this.getNewInstance(t, i, options);
|
|
@@ -216,22 +253,28 @@ class Container extends events_1.EventEmitter {
|
|
|
216
253
|
return instance;
|
|
217
254
|
}
|
|
218
255
|
}
|
|
256
|
+
if (d.resolver === enums_1.ResolveType.PerInstanceCheck) {
|
|
257
|
+
const cashed = getCachedInstances(tType, true);
|
|
258
|
+
if (cashed) {
|
|
259
|
+
const found = cashed.find((x) => {
|
|
260
|
+
if (!x.__checkInstance__) {
|
|
261
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
262
|
+
throw new exceptions_2.ResolveException(`service ${x.constructor.name} is marked as PerInstanceCheck resolver, but no __checkInstance__ function is provided`);
|
|
263
|
+
}
|
|
264
|
+
return x.__checkInstance__(options);
|
|
265
|
+
});
|
|
266
|
+
if (found) {
|
|
267
|
+
return found;
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
return createNewInstance(t, i, options);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
219
274
|
this.Registry.register(sName, t);
|
|
220
275
|
const cashed = getCachedInstance(tType, d.resolver === enums_1.ResolveType.Singleton ? true : false);
|
|
221
276
|
if (!cashed) {
|
|
222
|
-
|
|
223
|
-
if ((0, helpers_1.isPromise)(instance)) {
|
|
224
|
-
return instance.then((r) => {
|
|
225
|
-
setCache(r);
|
|
226
|
-
emit(r);
|
|
227
|
-
return r;
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
setCache(instance);
|
|
232
|
-
emit(instance);
|
|
233
|
-
return instance;
|
|
234
|
-
}
|
|
277
|
+
return createNewInstance(t, i, options);
|
|
235
278
|
}
|
|
236
279
|
else {
|
|
237
280
|
return cashed;
|
|
@@ -290,10 +333,10 @@ class Container extends events_1.EventEmitter {
|
|
|
290
333
|
/* eslint-disable */
|
|
291
334
|
newInstance[`${ai.autoinjectKey}`] = ai.instance;
|
|
292
335
|
}
|
|
293
|
-
if ((0, helpers_1.
|
|
336
|
+
if ((0, helpers_1.isAsyncService)(newInstance)) {
|
|
294
337
|
return new Promise((res, rej) => {
|
|
295
338
|
newInstance
|
|
296
|
-
.
|
|
339
|
+
.resolve()
|
|
297
340
|
.then(() => {
|
|
298
341
|
res(newInstance);
|
|
299
342
|
})
|
|
@@ -301,7 +344,7 @@ class Container extends events_1.EventEmitter {
|
|
|
301
344
|
});
|
|
302
345
|
}
|
|
303
346
|
else {
|
|
304
|
-
if (newInstance instanceof interfaces_1.
|
|
347
|
+
if (newInstance instanceof interfaces_1.SyncService) {
|
|
305
348
|
newInstance.resolve();
|
|
306
349
|
}
|
|
307
350
|
}
|
|
@@ -313,7 +356,48 @@ class Container extends events_1.EventEmitter {
|
|
|
313
356
|
}
|
|
314
357
|
resolveDependencies(toInject) {
|
|
315
358
|
const dependencies = toInject.map((t) => {
|
|
316
|
-
|
|
359
|
+
var _a, _b;
|
|
360
|
+
let tInject = null;
|
|
361
|
+
// if we have service func, retrieve target
|
|
362
|
+
// we can have multiple implementation of same interface
|
|
363
|
+
// and service can request to inject specific one
|
|
364
|
+
// ( not just last one registered )
|
|
365
|
+
// if serviceFunc returns array,
|
|
366
|
+
// all services will be resolved and mapped
|
|
367
|
+
if (t.serviceFunc) {
|
|
368
|
+
const services = t.serviceFunc(t.data, this);
|
|
369
|
+
const types = this.getRegisteredTypes(t.inject);
|
|
370
|
+
if (!types || types.length === 0) {
|
|
371
|
+
throw new exceptions_2.ServiceNotFound(`Service ${t.inject.name} is not registered in DI container`);
|
|
372
|
+
}
|
|
373
|
+
if ((0, lodash_1.isArray)(services)) {
|
|
374
|
+
tInject = services.map((x) => {
|
|
375
|
+
return {
|
|
376
|
+
type: types.find((t) => t.name === x.service),
|
|
377
|
+
options: x.options,
|
|
378
|
+
};
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
tInject = {
|
|
383
|
+
type: types.find((t) => t.name === services.service),
|
|
384
|
+
options: services.options,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
let promiseOrVal = null;
|
|
389
|
+
if ((0, lodash_1.isArray)(tInject)) {
|
|
390
|
+
const pVals = tInject.map((x) => { var _a; return this.resolve(x.type, [(_a = t.options) !== null && _a !== void 0 ? _a : x.options], false, x.type); });
|
|
391
|
+
if (pVals.some((x) => (0, helpers_1.isPromise)(x))) {
|
|
392
|
+
promiseOrVal = Promise.all(pVals);
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
promiseOrVal = pVals;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
promiseOrVal = this.resolve((_a = tInject === null || tInject === void 0 ? void 0 : tInject.type) !== null && _a !== void 0 ? _a : t.inject, [(_b = t.options) !== null && _b !== void 0 ? _b : tInject === null || tInject === void 0 ? void 0 : tInject.options], false, tInject === null || tInject === void 0 ? void 0 : tInject.type);
|
|
400
|
+
}
|
|
317
401
|
if (promiseOrVal instanceof Promise) {
|
|
318
402
|
return promiseOrVal.then((val) => {
|
|
319
403
|
return {
|
package/lib/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
package/lib/decorators.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { IAutoinjectOptions, IInjectDescriptor } from './interfaces';
|
|
1
2
|
import { Class } from './types';
|
|
2
3
|
import { TypedArray } from './array';
|
|
3
4
|
export declare const DI_DESCRIPTION_SYMBOL = "__DI_INJECTION_DESCRIPTOR__";
|
|
5
|
+
export declare function AddDependency(callback?: (descriptor: IInjectDescriptor<unknown>, target: Class<unknown>, propertyKey: string | symbol, indexOrDescriptor: number | PropertyDescriptor) => void): any;
|
|
4
6
|
/**
|
|
5
7
|
*
|
|
6
8
|
* Class with this decorator is automatically registered in DI container an can be resolved.
|
|
@@ -81,7 +83,7 @@ export declare function Inject(...args: (Class<any> | TypedArray<any>)[]): any;
|
|
|
81
83
|
*
|
|
82
84
|
* ```
|
|
83
85
|
*/
|
|
84
|
-
export declare function Autoinject<T>(
|
|
86
|
+
export declare function Autoinject<T>(typeOrOptions?: Class<T> | IAutoinjectOptions, options?: IAutoinjectOptions): any;
|
|
85
87
|
/**
|
|
86
88
|
* Lazy injects service to object. Use only with class properties
|
|
87
89
|
*
|
|
@@ -113,6 +115,25 @@ export declare function PerChildInstance(): any;
|
|
|
113
115
|
* NewInstance injection decorator - every time class is injected - its created from scratch
|
|
114
116
|
*/
|
|
115
117
|
export declare function NewInstance(): any;
|
|
118
|
+
/**
|
|
119
|
+
* If we have multiple registered types at one base type
|
|
120
|
+
* we can resolve only one by default. Per instance means, that
|
|
121
|
+
* we can resolve all types registered at base type once. Limitaiton is
|
|
122
|
+
* that, you should call resolve not on base type, but on target type.
|
|
123
|
+
*
|
|
124
|
+
* In comparison, Singleton flag means that only one instance can be resolved
|
|
125
|
+
* for base class
|
|
126
|
+
*/
|
|
127
|
+
export declare function PerInstance(): any;
|
|
128
|
+
/**
|
|
129
|
+
*
|
|
130
|
+
* Before resolve, check function on all resolved instances of given type is called with creation options
|
|
131
|
+
* It is used for ensuring that for eg. only one instance of service with provided
|
|
132
|
+
* options is resolved, but allow to create with other option set
|
|
133
|
+
*
|
|
134
|
+
* @returns
|
|
135
|
+
*/
|
|
136
|
+
export declare function PerInstanceCheck(): any;
|
|
116
137
|
/**
|
|
117
138
|
* Singleton injection decorator - every time class is resolved - its created only once globally ( even in child DI containers )
|
|
118
139
|
*/
|
package/lib/decorators.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Singleton = exports.NewInstance = exports.PerChildInstance = exports.LazyInject = exports.Autoinject = exports.Inject = exports.Injectable = exports.DI_DESCRIPTION_SYMBOL = void 0;
|
|
26
|
+
exports.Singleton = exports.PerInstanceCheck = exports.PerInstance = exports.NewInstance = exports.PerChildInstance = exports.LazyInject = exports.Autoinject = exports.Inject = exports.Injectable = exports.AddDependency = exports.DI_DESCRIPTION_SYMBOL = void 0;
|
|
27
27
|
const enums_1 = require("./enums");
|
|
28
28
|
const DI = __importStar(require("./root"));
|
|
29
29
|
const helpers_1 = require("./helpers");
|
|
@@ -43,6 +43,7 @@ function AddDependency(callback) {
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
+
exports.AddDependency = AddDependency;
|
|
46
47
|
/**
|
|
47
48
|
*
|
|
48
49
|
* Class with this decorator is automatically registered in DI container an can be resolved.
|
|
@@ -160,18 +161,26 @@ exports.Inject = Inject;
|
|
|
160
161
|
*
|
|
161
162
|
* ```
|
|
162
163
|
*/
|
|
163
|
-
function Autoinject(
|
|
164
|
+
function Autoinject(typeOrOptions, options) {
|
|
164
165
|
return AddDependency((descriptor, target, propertyKey) => {
|
|
165
|
-
|
|
166
|
+
let type = Reflect.getMetadata('design:type', target, propertyKey);
|
|
166
167
|
const isArray = type.name === 'Array' || type.name === 'Map';
|
|
167
|
-
|
|
168
|
-
|
|
168
|
+
let opt = options;
|
|
169
|
+
if ((0, helpers_1.isConstructor)(typeOrOptions)) {
|
|
170
|
+
if (isArray && !typeOrOptions) {
|
|
171
|
+
throw new Error('you must provide inject type when injecting array');
|
|
172
|
+
}
|
|
173
|
+
type = typeOrOptions;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
opt = typeOrOptions;
|
|
169
177
|
}
|
|
170
178
|
descriptor.inject.push({
|
|
171
179
|
autoinject: true,
|
|
172
180
|
autoinjectKey: propertyKey,
|
|
173
|
-
inject: isArray ? Array.ofType(
|
|
174
|
-
mapFunc,
|
|
181
|
+
inject: isArray ? Array.ofType(typeOrOptions) : type,
|
|
182
|
+
mapFunc: opt === null || opt === void 0 ? void 0 : opt.mapFunc,
|
|
183
|
+
options: opt === null || opt === void 0 ? void 0 : opt.options,
|
|
175
184
|
});
|
|
176
185
|
});
|
|
177
186
|
}
|
|
@@ -236,6 +245,35 @@ function NewInstance() {
|
|
|
236
245
|
});
|
|
237
246
|
}
|
|
238
247
|
exports.NewInstance = NewInstance;
|
|
248
|
+
/**
|
|
249
|
+
* If we have multiple registered types at one base type
|
|
250
|
+
* we can resolve only one by default. Per instance means, that
|
|
251
|
+
* we can resolve all types registered at base type once. Limitaiton is
|
|
252
|
+
* that, you should call resolve not on base type, but on target type.
|
|
253
|
+
*
|
|
254
|
+
* In comparison, Singleton flag means that only one instance can be resolved
|
|
255
|
+
* for base class
|
|
256
|
+
*/
|
|
257
|
+
function PerInstance() {
|
|
258
|
+
return AddDependency((descriptor) => {
|
|
259
|
+
descriptor.resolver = enums_1.ResolveType.PerInstance;
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
exports.PerInstance = PerInstance;
|
|
263
|
+
/**
|
|
264
|
+
*
|
|
265
|
+
* Before resolve, check function on all resolved instances of given type is called with creation options
|
|
266
|
+
* It is used for ensuring that for eg. only one instance of service with provided
|
|
267
|
+
* options is resolved, but allow to create with other option set
|
|
268
|
+
*
|
|
269
|
+
* @returns
|
|
270
|
+
*/
|
|
271
|
+
function PerInstanceCheck() {
|
|
272
|
+
return AddDependency((descriptor) => {
|
|
273
|
+
descriptor.resolver = enums_1.ResolveType.PerInstanceCheck;
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
exports.PerInstanceCheck = PerInstanceCheck;
|
|
239
277
|
/**
|
|
240
278
|
* Singleton injection decorator - every time class is resolved - its created only once globally ( even in child DI containers )
|
|
241
279
|
*/
|
package/lib/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAsC;AAItC,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/lib/enums.d.ts
CHANGED
|
@@ -13,5 +13,19 @@ export declare enum ResolveType {
|
|
|
13
13
|
/**
|
|
14
14
|
* New instance per child DI container.
|
|
15
15
|
*/
|
|
16
|
-
PerChildContainer = 2
|
|
16
|
+
PerChildContainer = 2,
|
|
17
|
+
/**
|
|
18
|
+
* Singleton per target type
|
|
19
|
+
*
|
|
20
|
+
* eg. if we have multiple registered types at one base type
|
|
21
|
+
* we can resolve any of it once
|
|
22
|
+
*
|
|
23
|
+
* In comparison, Singleton flag means that only one instance can be resolved
|
|
24
|
+
* for base class
|
|
25
|
+
*/
|
|
26
|
+
PerInstance = 3,
|
|
27
|
+
/**
|
|
28
|
+
* Only one instance with given name can exists of the same service
|
|
29
|
+
*/
|
|
30
|
+
PerInstanceCheck = 4
|
|
17
31
|
}
|
package/lib/enums.js
CHANGED
|
@@ -18,5 +18,19 @@ var ResolveType;
|
|
|
18
18
|
* New instance per child DI container.
|
|
19
19
|
*/
|
|
20
20
|
ResolveType[ResolveType["PerChildContainer"] = 2] = "PerChildContainer";
|
|
21
|
+
/**
|
|
22
|
+
* Singleton per target type
|
|
23
|
+
*
|
|
24
|
+
* eg. if we have multiple registered types at one base type
|
|
25
|
+
* we can resolve any of it once
|
|
26
|
+
*
|
|
27
|
+
* In comparison, Singleton flag means that only one instance can be resolved
|
|
28
|
+
* for base class
|
|
29
|
+
*/
|
|
30
|
+
ResolveType[ResolveType["PerInstance"] = 3] = "PerInstance";
|
|
31
|
+
/**
|
|
32
|
+
* Only one instance with given name can exists of the same service
|
|
33
|
+
*/
|
|
34
|
+
ResolveType[ResolveType["PerInstanceCheck"] = 4] = "PerInstanceCheck";
|
|
21
35
|
})(ResolveType = exports.ResolveType || (exports.ResolveType = {}));
|
|
22
36
|
//# sourceMappingURL=enums.js.map
|
package/lib/enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,WA+BX;AA/BD,WAAY,WAAW;IACrB;;OAEG;IACH,uDAAS,CAAA;IAET;;OAEG;IACH,2DAAW,CAAA;IAEX;;OAEG;IACH,uEAAiB,CAAA;IAEjB;;;;;;;;OAQG;IACH,2DAAW,CAAA;IAEX;;OAEG;IACH,qEAAgB,CAAA;AAClB,CAAC,EA/BW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QA+BtB"}
|
package/lib/helpers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TypedArray } from './array';
|
|
2
|
-
import {
|
|
2
|
+
import { AsyncService, SyncService } from './interfaces';
|
|
3
3
|
import { Factory, Class } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Checks if value is constructable type.
|
|
@@ -10,9 +10,9 @@ import { Factory, Class } from './types';
|
|
|
10
10
|
export declare function isConstructor(value: any): value is Class<unknown>;
|
|
11
11
|
export declare function isFactory(value: any): value is Factory<any>;
|
|
12
12
|
export declare function isObject(value: any): value is object;
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function isAsyncService(value: any): value is AsyncService;
|
|
14
14
|
export declare function isPromise(value: any): value is Promise<any>;
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function isSyncService(value: any): value is SyncService;
|
|
16
16
|
/**
|
|
17
17
|
* For DI purpose we treat Map as array to inject. Difference is, that we fill map by some key
|
|
18
18
|
* provided by mapFunc in \@Autoinject
|
package/lib/helpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTypeName = exports.uniqBy = exports.isMap = exports.isTypedArray = exports.
|
|
3
|
+
exports.getTypeName = exports.uniqBy = exports.isMap = exports.isTypedArray = exports.isSyncService = exports.isPromise = exports.isAsyncService = exports.isObject = exports.isFactory = exports.isConstructor = void 0;
|
|
4
4
|
const interfaces_1 = require("./interfaces");
|
|
5
5
|
/**
|
|
6
6
|
* Checks if value is constructable type.
|
|
@@ -26,18 +26,18 @@ function isObject(value) {
|
|
|
26
26
|
return typeof value === 'object';
|
|
27
27
|
}
|
|
28
28
|
exports.isObject = isObject;
|
|
29
|
-
function
|
|
30
|
-
return value instanceof interfaces_1.
|
|
29
|
+
function isAsyncService(value) {
|
|
30
|
+
return value instanceof interfaces_1.AsyncService;
|
|
31
31
|
}
|
|
32
|
-
exports.
|
|
32
|
+
exports.isAsyncService = isAsyncService;
|
|
33
33
|
function isPromise(value) {
|
|
34
34
|
return value instanceof Promise;
|
|
35
35
|
}
|
|
36
36
|
exports.isPromise = isPromise;
|
|
37
|
-
function
|
|
38
|
-
return value instanceof interfaces_1.
|
|
37
|
+
function isSyncService(value) {
|
|
38
|
+
return value instanceof interfaces_1.SyncService;
|
|
39
39
|
}
|
|
40
|
-
exports.
|
|
40
|
+
exports.isSyncService = isSyncService;
|
|
41
41
|
/**
|
|
42
42
|
* For DI purpose we treat Map as array to inject. Difference is, that we fill map by some key
|
|
43
43
|
* provided by mapFunc in \@Autoinject
|
package/lib/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AACA,6CAAyD;AAGzD;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAU;IACtC,IAAI;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KACtC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AARD,sCAQC;AAED,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAFD,4BAEC;AAED,SAAgB,cAAc,CAAC,KAAU;IACvC,OAAO,KAAK,YAAY,yBAAY,CAAC;AACvC,CAAC;AAFD,wCAEC;AAED,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,KAAK,YAAY,OAAO,CAAC;AAClC,CAAC;AAFD,8BAEC;AAED,SAAgB,aAAa,CAAC,KAAU;IACtC,OAAO,KAAK,YAAY,wBAAW,CAAC;AACtC,CAAC;AAFD,sCAEC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAU;IACrC,OAAO,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7F,CAAC;AAFD,oCAEC;AAED,SAAgB,KAAK,CAAC,KAAU;IAC9B,OAAO,KAAK,YAAY,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC;AAClE,CAAC;AAFD,sBAEC;AAED,SAAgB,MAAM,CAAI,GAAQ,EAAE,UAAmC;IACrE,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;QACnB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AARD,wBAQC;AAED,SAAgB,WAAW,CAAC,IAAoD;IAC9E,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACjJ,CAAC;AAFD,kCAEC"}
|
package/lib/interfaces.d.ts
CHANGED
|
@@ -5,6 +5,9 @@ import { EventEmitter } from 'events';
|
|
|
5
5
|
import { TypedArray } from './array';
|
|
6
6
|
import { Registry } from './registry';
|
|
7
7
|
import { ContainerCache } from './container-cache';
|
|
8
|
+
export interface IInstanceCheck {
|
|
9
|
+
__checkInstance__(creationOptions: any): boolean;
|
|
10
|
+
}
|
|
8
11
|
/**
|
|
9
12
|
* Interface to describe DI binding behaviour
|
|
10
13
|
*/
|
|
@@ -21,10 +24,21 @@ export interface IBind {
|
|
|
21
24
|
asSelf(): this;
|
|
22
25
|
/**
|
|
23
26
|
* Registers as value, it wont be resolved or called, just stored as is in container
|
|
24
|
-
*
|
|
25
27
|
* @param type - name of type / key after whitch implementation will be resolved
|
|
28
|
+
* @param override - if true, any value registered before is overriden by new one
|
|
26
29
|
*/
|
|
30
|
+
asValue(type: string, override: boolean): this;
|
|
27
31
|
asValue(type: string): this;
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* Add plain value to container, value is stored in hashmap for quick access
|
|
35
|
+
* eg. we have multiple value converters and we wanc o(1) access, instead searching for
|
|
36
|
+
* converter for specific type
|
|
37
|
+
*
|
|
38
|
+
* @param type - name of added value
|
|
39
|
+
* @param key - hashmap key
|
|
40
|
+
*/
|
|
41
|
+
asMapValue(type: string, hashKey: string): this;
|
|
28
42
|
/**
|
|
29
43
|
* Registers object as single instance ( singleton )
|
|
30
44
|
*/
|
|
@@ -41,7 +55,7 @@ export interface IContainer extends EventEmitter {
|
|
|
41
55
|
clearRegistry(): void;
|
|
42
56
|
clearCache(): void;
|
|
43
57
|
register<T>(implementation: Class<T> | Factory<T> | ResolvableObject): IBind;
|
|
44
|
-
unregister<T>(implementation: Class<T> | Factory<T> | ResolvableObject): void;
|
|
58
|
+
unregister<T>(implementation: string | Class<T> | Factory<T> | ResolvableObject): void;
|
|
45
59
|
uncache<T>(source: string | Class<T> | TypedArray<T>, parent?: boolean): void;
|
|
46
60
|
child(): IContainer;
|
|
47
61
|
get<T>(service: TypedArray<T>, parent?: boolean): T[] | null;
|
|
@@ -53,11 +67,12 @@ export interface IContainer extends EventEmitter {
|
|
|
53
67
|
hasRegisteredType<T>(source: Class<any> | string | TypedArray<any>, type: Class<T> | string | TypedArray<T> | object, parent?: boolean): boolean;
|
|
54
68
|
resolve<T>(type: string, options?: unknown[], check?: boolean): T;
|
|
55
69
|
resolve<T>(type: string, check?: boolean): T;
|
|
56
|
-
resolve<T>(type: Class<T> | Factory<T>, options?: unknown[] | boolean, check?: boolean): T extends
|
|
57
|
-
resolve<T>(type: TypedArray<T>, options?: unknown[] | boolean, check?: boolean): T extends
|
|
58
|
-
resolve<T>(type: Class<T> | Factory<T>, check?: boolean): T extends
|
|
59
|
-
resolve<T>(type: TypedArray<T>, check?: boolean): T extends
|
|
70
|
+
resolve<T>(type: Class<T> | Factory<T>, options?: unknown[] | boolean, check?: boolean): T extends AsyncService ? Promise<T> : T;
|
|
71
|
+
resolve<T>(type: TypedArray<T>, options?: unknown[] | boolean, check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
|
|
72
|
+
resolve<T>(type: Class<T> | Factory<T>, check?: boolean): T extends AsyncService ? Promise<T> : T;
|
|
73
|
+
resolve<T>(type: TypedArray<T>, check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
|
|
60
74
|
resolve<T>(type: Class<T> | TypedArray<T> | string, options?: unknown[] | boolean, check?: boolean): Promise<T | T[]> | T | T[];
|
|
75
|
+
dispose(): Promise<void>;
|
|
61
76
|
}
|
|
62
77
|
/**
|
|
63
78
|
* Injection description definition structure
|
|
@@ -70,7 +85,33 @@ export interface IToInject<T> {
|
|
|
70
85
|
inject: Class<T> | TypedArray<T>;
|
|
71
86
|
autoinject: boolean;
|
|
72
87
|
autoinjectKey: string;
|
|
73
|
-
|
|
88
|
+
/**
|
|
89
|
+
* additional data passed to DI when resolving
|
|
90
|
+
*/
|
|
91
|
+
data?: any;
|
|
92
|
+
/**
|
|
93
|
+
* Additional options passed to resolved options
|
|
94
|
+
*/
|
|
95
|
+
options?: any;
|
|
96
|
+
/**
|
|
97
|
+
* Callback used to resolve service
|
|
98
|
+
* name of service we want to resolve
|
|
99
|
+
* eg. we have multiple \@injectable registered
|
|
100
|
+
* and we want specific one
|
|
101
|
+
*
|
|
102
|
+
* It is specifically for use with configuration module
|
|
103
|
+
* where services can be changed in configuration files
|
|
104
|
+
* and allows to use @AutoinjectService() decorator
|
|
105
|
+
*/
|
|
106
|
+
serviceFunc?: (data: string | any[], container: IContainer) => IServiceFuncResult | IServiceFuncResult[];
|
|
107
|
+
mapFunc?: (x: IMappableService) => string;
|
|
108
|
+
}
|
|
109
|
+
export interface IMappableService {
|
|
110
|
+
ServiceName: string;
|
|
111
|
+
}
|
|
112
|
+
export interface IServiceFuncResult {
|
|
113
|
+
service: string;
|
|
114
|
+
options?: any;
|
|
74
115
|
}
|
|
75
116
|
export interface IResolvedInjection {
|
|
76
117
|
instance: unknown;
|
|
@@ -83,18 +124,27 @@ export interface IResolvedInjection {
|
|
|
83
124
|
* specific way but without need for factory function.
|
|
84
125
|
*
|
|
85
126
|
*
|
|
86
|
-
* @see
|
|
127
|
+
* @see FrameworkModuleSyncService implementation
|
|
87
128
|
*/
|
|
88
|
-
export declare class
|
|
129
|
+
export declare class Service {
|
|
89
130
|
protected resolved: boolean;
|
|
90
131
|
get Resolved(): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Use to dispose service, relase all resources, stop timers etc.
|
|
134
|
+
*
|
|
135
|
+
*/
|
|
136
|
+
dispose(): Promise<void>;
|
|
91
137
|
}
|
|
92
|
-
export declare abstract class
|
|
138
|
+
export declare abstract class SyncService extends Service {
|
|
93
139
|
resolve(): void;
|
|
94
140
|
}
|
|
95
|
-
export declare class
|
|
96
|
-
|
|
141
|
+
export declare class AsyncService extends Service {
|
|
142
|
+
resolve(): Promise<void>;
|
|
97
143
|
}
|
|
98
144
|
export declare abstract class Bootstrapper {
|
|
99
145
|
abstract bootstrap(): Promise<void> | void;
|
|
100
146
|
}
|
|
147
|
+
export interface IAutoinjectOptions {
|
|
148
|
+
mapFunc?: (x: IMappableService) => string;
|
|
149
|
+
options?: any;
|
|
150
|
+
}
|
package/lib/interfaces.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Bootstrapper = exports.
|
|
3
|
+
exports.Bootstrapper = exports.AsyncService = exports.SyncService = exports.Service = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Interface to describe DI resolve strategies. Strategies are used do
|
|
6
6
|
* do some work at object creation eg. initialize objects that inherits from same class
|
|
7
7
|
* specific way but without need for factory function.
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
|
-
* @see
|
|
10
|
+
* @see FrameworkModuleSyncService implementation
|
|
11
11
|
*/
|
|
12
12
|
// export interface IStrategy {
|
|
13
13
|
// resolve: (target: any, container: IContainer) => void;
|
|
@@ -15,28 +15,33 @@ exports.Bootstrapper = exports.AsyncModule = exports.SyncModule = exports.Module
|
|
|
15
15
|
// export interface IAsyncStrategy {
|
|
16
16
|
// resolveA: (target: any, container: IContainer) => Promise<void>;
|
|
17
17
|
// }
|
|
18
|
-
class
|
|
18
|
+
class Service {
|
|
19
19
|
constructor() {
|
|
20
20
|
this.resolved = false;
|
|
21
21
|
}
|
|
22
22
|
get Resolved() {
|
|
23
23
|
return this.resolved;
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Use to dispose service, relase all resources, stop timers etc.
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
async dispose() { }
|
|
25
30
|
}
|
|
26
|
-
exports.
|
|
27
|
-
class
|
|
31
|
+
exports.Service = Service;
|
|
32
|
+
class SyncService extends Service {
|
|
28
33
|
resolve() {
|
|
29
34
|
this.resolved = true;
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
|
-
exports.
|
|
33
|
-
class
|
|
37
|
+
exports.SyncService = SyncService;
|
|
38
|
+
class AsyncService extends Service {
|
|
34
39
|
/* eslint-disable */
|
|
35
|
-
async
|
|
40
|
+
async resolve() {
|
|
36
41
|
this.resolved = true;
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
|
-
exports.
|
|
44
|
+
exports.AsyncService = AsyncService;
|
|
40
45
|
class Bootstrapper {
|
|
41
46
|
}
|
|
42
47
|
exports.Bootstrapper = Bootstrapper;
|
package/lib/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AA+IA;;;;;;;GAOG;AACH,+BAA+B;AAC/B,6DAA6D;AAC7D,IAAI;AAEJ,oCAAoC;AACpC,uEAAuE;AACvE,IAAI;AAEJ,MAAa,OAAO;IAApB;QACY,aAAQ,GAAG,KAAK,CAAC;IAU7B,CAAC;IATC,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO,KAAI,CAAC;CAC1B;AAXD,0BAWC;AAED,MAAsB,WAAY,SAAQ,OAAO;IACxC,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AAJD,kCAIC;AAED,MAAa,YAAa,SAAQ,OAAO;IACvC,oBAAoB;IACb,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AALD,oCAKC;AAED,MAAsB,YAAY;CAEjC;AAFD,oCAEC"}
|
package/lib/root.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBind, IContainer,
|
|
1
|
+
import { IBind, IContainer, AsyncService, ResolvableObject } from './interfaces';
|
|
2
2
|
import { Class, Factory } from './types';
|
|
3
3
|
import { TypedArray } from './array';
|
|
4
4
|
/**
|
|
@@ -46,21 +46,22 @@ export declare function clearCache(): void;
|
|
|
46
46
|
* @throws {@link InvalidArgument} if type is null or undefined
|
|
47
47
|
*/
|
|
48
48
|
export declare function register<T>(type: Class<T> | Factory<T> | ResolvableObject): IBind;
|
|
49
|
-
export declare function unregister<T>(type: Class<T> | Factory<T> | ResolvableObject): void;
|
|
49
|
+
export declare function unregister<T>(type: string | Class<T> | Factory<T> | ResolvableObject): void;
|
|
50
50
|
export declare function uncache<T>(type: string | Class<T> | TypedArray<T>, parent?: boolean): void;
|
|
51
51
|
/**
|
|
52
52
|
* Resolves specified type from root container.
|
|
53
53
|
*
|
|
54
54
|
* @param type - class to resolve
|
|
55
55
|
* @param options - optional parameters passed to class constructor
|
|
56
|
+
* @param check - use parent container to check when resolving
|
|
56
57
|
* @throws {@link InvalidArgument} if type is null or undefined
|
|
57
58
|
*/
|
|
58
59
|
export declare function resolve<T>(type: string, options?: unknown[], check?: boolean): T;
|
|
59
60
|
export declare function resolve<T>(type: string, check?: boolean): T;
|
|
60
|
-
export declare function resolve<T>(type: Class<T>, check?: boolean): T extends
|
|
61
|
-
export declare function resolve<T>(type: TypedArray<T>, check?: boolean): T extends
|
|
62
|
-
export declare function resolve<T>(type: Class<T>, options?: unknown[] | boolean, check?: boolean): T extends
|
|
63
|
-
export declare function resolve<T>(type: TypedArray<T>, options?: unknown[] | boolean, check?: boolean): T extends
|
|
61
|
+
export declare function resolve<T>(type: Class<T>, check?: boolean): T extends AsyncService ? Promise<T> : T;
|
|
62
|
+
export declare function resolve<T>(type: TypedArray<T>, check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
|
|
63
|
+
export declare function resolve<T>(type: Class<T>, options?: unknown[] | boolean, check?: boolean): T extends AsyncService ? Promise<T> : T;
|
|
64
|
+
export declare function resolve<T>(type: TypedArray<T>, options?: unknown[] | boolean, check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
|
|
64
65
|
/**
|
|
65
66
|
* Gets already resolved service from root container.
|
|
66
67
|
*
|
|
@@ -68,6 +69,13 @@ export declare function resolve<T>(type: TypedArray<T>, options?: unknown[] | bo
|
|
|
68
69
|
*/
|
|
69
70
|
export declare function get<T>(serviceName: TypedArray<T>): T[] | null;
|
|
70
71
|
export declare function get<T>(serviceName: string | Class<T>): T | null;
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
* Returns list of types registered at given type, eg. all types/services registered under BaseService
|
|
75
|
+
*
|
|
76
|
+
* @param type - base type to check
|
|
77
|
+
*/
|
|
78
|
+
export declare function getRegisteredTypes<T>(type: string | Class<T>): Class<T>[];
|
|
71
79
|
/**
|
|
72
80
|
* Checks if service is already resolved and exists in container cache.
|
|
73
81
|
* NOTE: check is only valid for classes that are singletons.
|
|
@@ -81,6 +89,15 @@ export declare function has<T>(service: string | Class<T>): boolean;
|
|
|
81
89
|
* @param service - service class object to check
|
|
82
90
|
*/
|
|
83
91
|
export declare function check<T>(service: Class<T> | string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Checks if specific service is registered in container.
|
|
94
|
+
* Eg. we can have multiple drivers registered for queue connections with different protocol implementations
|
|
95
|
+
* and we want to check if specific driver is registered
|
|
96
|
+
*
|
|
97
|
+
* @param source - source class to check ( eg. base class )
|
|
98
|
+
* @param type - specific type to check eg. base class implementation
|
|
99
|
+
*/
|
|
100
|
+
export declare function checkType<T>(source: Class<any> | string | TypedArray<any>, type: Class<T> | string | TypedArray<T> | object): boolean;
|
|
84
101
|
/**
|
|
85
102
|
* Creates child DI container.
|
|
86
103
|
*
|
package/lib/root.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.child = exports.check = exports.has = exports.get = exports.resolve = exports.uncache = exports.unregister = exports.register = exports.clearCache = exports.clearRegistry = exports.clear = exports.eventNames = exports.prependOnceListener = exports.prependListener = exports.listenerCount = exports.emit = exports.rawListeners = exports.listeners = exports.getMaxListeners = exports.setMaxListeners = exports.removeAllListeners = exports.off = exports.removeListener = exports.once = exports.addListener = exports.on = exports.RootContainer = void 0;
|
|
3
|
+
exports.child = exports.checkType = exports.check = exports.has = exports.getRegisteredTypes = exports.get = exports.resolve = exports.uncache = exports.unregister = exports.register = exports.clearCache = exports.clearRegistry = exports.clear = exports.eventNames = exports.prependOnceListener = exports.prependListener = exports.listenerCount = exports.emit = exports.rawListeners = exports.listeners = exports.getMaxListeners = exports.setMaxListeners = exports.removeAllListeners = exports.off = exports.removeListener = exports.once = exports.addListener = exports.on = exports.RootContainer = void 0;
|
|
4
4
|
const container_1 = require("./container");
|
|
5
5
|
/**
|
|
6
6
|
* App main DI container
|
|
@@ -121,6 +121,16 @@ function get(serviceName) {
|
|
|
121
121
|
return exports.RootContainer.get(serviceName);
|
|
122
122
|
}
|
|
123
123
|
exports.get = get;
|
|
124
|
+
/**
|
|
125
|
+
*
|
|
126
|
+
* Returns list of types registered at given type, eg. all types/services registered under BaseService
|
|
127
|
+
*
|
|
128
|
+
* @param type - base type to check
|
|
129
|
+
*/
|
|
130
|
+
function getRegisteredTypes(type) {
|
|
131
|
+
return exports.RootContainer.getRegisteredTypes(type);
|
|
132
|
+
}
|
|
133
|
+
exports.getRegisteredTypes = getRegisteredTypes;
|
|
124
134
|
/**
|
|
125
135
|
* Checks if service is already resolved and exists in container cache.
|
|
126
136
|
* NOTE: check is only valid for classes that are singletons.
|
|
@@ -140,6 +150,18 @@ function check(service) {
|
|
|
140
150
|
return exports.RootContainer.hasRegistered(service);
|
|
141
151
|
}
|
|
142
152
|
exports.check = check;
|
|
153
|
+
/**
|
|
154
|
+
* Checks if specific service is registered in container.
|
|
155
|
+
* Eg. we can have multiple drivers registered for queue connections with different protocol implementations
|
|
156
|
+
* and we want to check if specific driver is registered
|
|
157
|
+
*
|
|
158
|
+
* @param source - source class to check ( eg. base class )
|
|
159
|
+
* @param type - specific type to check eg. base class implementation
|
|
160
|
+
*/
|
|
161
|
+
function checkType(source, type) {
|
|
162
|
+
return exports.RootContainer.hasRegisteredType(source, type);
|
|
163
|
+
}
|
|
164
|
+
exports.checkType = checkType;
|
|
143
165
|
/**
|
|
144
166
|
* Creates child DI container.
|
|
145
167
|
*
|
package/lib/root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spinajs/di",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.44",
|
|
4
4
|
"description": "lightweight di container ",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://github.com/spinajs/di#readme",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@spinajs/exceptions": "^2.0.
|
|
42
|
+
"@spinajs/exceptions": "^2.0.39",
|
|
43
43
|
"lodash": "^4.17.21",
|
|
44
44
|
"reflect-metadata": "^0.1.13"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/lodash": "^4.14.136"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "1857a6e3626e0fed22ffb0b44b48d587c79898db"
|
|
50
50
|
}
|