@spinajs/di 1.1.5 → 1.2.19
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/array.d.ts +7 -3
- package/lib/array.js +0 -3
- package/lib/array.js.map +1 -1
- package/lib/binder.d.ts +19 -0
- package/lib/binder.js +53 -0
- package/lib/binder.js.map +1 -0
- package/lib/container-cache.d.ts +12 -0
- package/lib/container-cache.js +49 -0
- package/lib/container-cache.js.map +1 -0
- package/lib/container.d.ts +43 -25
- package/lib/container.js +218 -273
- package/lib/container.js.map +1 -1
- package/lib/decorators.d.ts +9 -8
- package/lib/decorators.js +10 -11
- package/lib/decorators.js.map +1 -1
- package/lib/enums.d.ts +0 -1
- package/lib/enums.js +0 -1
- package/lib/enums.js.map +1 -1
- package/lib/exceptions.d.ts +2 -0
- package/lib/exceptions.js +4 -1
- package/lib/exceptions.js.map +1 -1
- package/lib/helpers.d.ts +12 -1
- package/lib/helpers.js +41 -1
- package/lib/helpers.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.js +6 -2
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +39 -25
- package/lib/interfaces.js +7 -3
- package/lib/interfaces.js.map +1 -1
- package/lib/registry.d.ts +13 -0
- package/lib/registry.js +66 -0
- package/lib/registry.js.map +1 -0
- package/lib/root.d.ts +85 -89
- package/lib/root.js +139 -144
- package/lib/root.js.map +1 -1
- package/lib/types.d.ts +9 -7
- package/package.json +9 -30
- package/lib/resolvers.d.ts +0 -0
- package/lib/resolvers.js +0 -1
- package/lib/resolvers.js.map +0 -1
- package/typings/array.d.ts +0 -12
package/lib/container.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Container = void 0;
|
|
4
4
|
const exceptions_1 = require("@spinajs/exceptions");
|
|
5
|
-
const _ = require("lodash");
|
|
6
5
|
require("reflect-metadata");
|
|
7
6
|
const array_1 = require("./array");
|
|
8
7
|
const decorators_1 = require("./decorators");
|
|
@@ -10,17 +9,18 @@ const enums_1 = require("./enums");
|
|
|
10
9
|
const helpers_1 = require("./helpers");
|
|
11
10
|
const interfaces_1 = require("./interfaces");
|
|
12
11
|
const events_1 = require("events");
|
|
13
|
-
const
|
|
12
|
+
const binder_1 = require("./binder");
|
|
13
|
+
const registry_1 = require("./registry");
|
|
14
|
+
const container_cache_1 = require("./container-cache");
|
|
14
15
|
/**
|
|
15
16
|
* Dependency injection container implementation
|
|
16
17
|
*/
|
|
17
18
|
class Container extends events_1.EventEmitter {
|
|
18
19
|
constructor(parent) {
|
|
19
20
|
super();
|
|
20
|
-
this.registry = new
|
|
21
|
-
this.cache = new
|
|
21
|
+
this.registry = new registry_1.Registry(this);
|
|
22
|
+
this.cache = new container_cache_1.ContainerCache(this);
|
|
22
23
|
this.parent = parent || undefined;
|
|
23
|
-
this.registerSelf();
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Returns container cache - map object with resolved classes as singletons
|
|
@@ -31,6 +31,9 @@ class Container extends events_1.EventEmitter {
|
|
|
31
31
|
get Registry() {
|
|
32
32
|
return this.registry;
|
|
33
33
|
}
|
|
34
|
+
get Parent() {
|
|
35
|
+
return this.parent;
|
|
36
|
+
}
|
|
34
37
|
/**
|
|
35
38
|
* Clears container registry and cache. shorthand for container.clearCache() && container.clearRegistry()
|
|
36
39
|
*/
|
|
@@ -42,54 +45,23 @@ class Container extends events_1.EventEmitter {
|
|
|
42
45
|
*/
|
|
43
46
|
clearCache() {
|
|
44
47
|
this.cache.clear();
|
|
45
|
-
this.cache = new Map();
|
|
46
48
|
}
|
|
47
49
|
/**
|
|
48
50
|
* Clears container resolved types
|
|
49
51
|
*/
|
|
50
52
|
clearRegistry() {
|
|
51
|
-
this.
|
|
52
|
-
this.registerSelf();
|
|
53
|
+
this.Registry.clear();
|
|
53
54
|
}
|
|
54
55
|
/**
|
|
55
56
|
* Register class/interface to DI.
|
|
56
57
|
* @param type - interface object to register
|
|
57
|
-
* @throws { InvalidArgument
|
|
58
|
+
* @throws {@link InvalidArgument} if type is null or undefined
|
|
58
59
|
*/
|
|
59
60
|
register(implementation) {
|
|
60
|
-
if (
|
|
61
|
+
if (!implementation) {
|
|
61
62
|
throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
|
|
62
63
|
}
|
|
63
|
-
|
|
64
|
-
return {
|
|
65
|
-
_impl: null,
|
|
66
|
-
as(type) {
|
|
67
|
-
this._impl = implementation;
|
|
68
|
-
const tname = typeof type === 'string' ? type : type.name;
|
|
69
|
-
if (!self._hasRegisteredType(tname, implementation)) {
|
|
70
|
-
if (self.registry.has(tname)) {
|
|
71
|
-
self.registry.get(tname).push(implementation);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
self.registry.set(tname, [implementation]);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return this;
|
|
78
|
-
},
|
|
79
|
-
asSelf() {
|
|
80
|
-
this._impl = implementation;
|
|
81
|
-
self.registry.set(implementation.name, [implementation]);
|
|
82
|
-
return this;
|
|
83
|
-
},
|
|
84
|
-
singleInstance() {
|
|
85
|
-
const descriptor = {
|
|
86
|
-
inject: [],
|
|
87
|
-
resolver: enums_1.ResolveType.Singleton,
|
|
88
|
-
};
|
|
89
|
-
this._impl[decorators_1.DI_DESCRIPTION_SYMBOL] = descriptor;
|
|
90
|
-
return this;
|
|
91
|
-
},
|
|
92
|
-
};
|
|
64
|
+
return new binder_1.Binder(implementation, this);
|
|
93
65
|
}
|
|
94
66
|
/**
|
|
95
67
|
* Creates child DI container.
|
|
@@ -99,294 +71,267 @@ class Container extends events_1.EventEmitter {
|
|
|
99
71
|
return new Container(this);
|
|
100
72
|
}
|
|
101
73
|
get(service, parent = true) {
|
|
102
|
-
|
|
103
|
-
const identifier = typeof service === 'string'
|
|
104
|
-
? this.Registry.get(service) || service
|
|
105
|
-
: service instanceof array_1.TypedArray
|
|
106
|
-
? this.Registry.get(service.Type.name)
|
|
107
|
-
: this.Registry.get(service.name) || service.name;
|
|
108
|
-
if (!identifier) {
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
if (typeof identifier === 'string') {
|
|
112
|
-
return _get(identifier);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* When we try to get type by factory func, always return null
|
|
116
|
-
* It's technically an arror becouse factory func in in charge now
|
|
117
|
-
* of managing intances of created objects (eg. creating cache)
|
|
118
|
-
*
|
|
119
|
-
* We do not track of any instances created by factory funcions.
|
|
120
|
-
*/
|
|
121
|
-
const isFactory = !helpers_1.isConstructor(identifier[identifier.length - 1]) && _.isFunction(identifier[identifier.length - 1]);
|
|
122
|
-
if (isFactory) {
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
74
|
+
// get value registered as TypedArray ( mean to return all created instances )
|
|
125
75
|
if (service instanceof array_1.TypedArray) {
|
|
126
|
-
return
|
|
127
|
-
}
|
|
128
|
-
return _get(identifier[identifier.length - 1].name);
|
|
129
|
-
function _get(i) {
|
|
130
|
-
if (self.cache.has(i)) {
|
|
131
|
-
return self.cache.get(i);
|
|
132
|
-
}
|
|
133
|
-
else if (self.parent && parent) {
|
|
134
|
-
return self.parent.get(i, parent);
|
|
135
|
-
}
|
|
136
|
-
return null;
|
|
76
|
+
return this.cache.get((0, helpers_1.getTypeName)(service.Type));
|
|
137
77
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (!service) {
|
|
141
|
-
throw new exceptions_1.InvalidArgument('argument "service" cannot be null or empty');
|
|
142
|
-
}
|
|
143
|
-
const name = typeof service === 'string' ? service : service.constructor.name;
|
|
144
|
-
if (this.registry.has(name)) {
|
|
145
|
-
return this.registry.get(name);
|
|
146
|
-
}
|
|
147
|
-
if (this.parent && parent) {
|
|
148
|
-
return this.parent.getRegistered(service, parent);
|
|
149
|
-
}
|
|
150
|
-
return null;
|
|
78
|
+
const r = this.cache.get(service, parent);
|
|
79
|
+
return r[r.length - 1];
|
|
151
80
|
}
|
|
152
81
|
hasRegistered(service, parent = true) {
|
|
153
|
-
|
|
154
|
-
return true;
|
|
155
|
-
}
|
|
156
|
-
else if (this.parent && parent) {
|
|
157
|
-
return this.parent.hasRegistered(service);
|
|
158
|
-
}
|
|
159
|
-
return false;
|
|
82
|
+
return this.Registry.hasRegistered(service, parent);
|
|
160
83
|
}
|
|
161
84
|
/**
|
|
162
85
|
* Checks if service is already resolved and exists in container cache.
|
|
163
86
|
* NOTE: check is only valid for classes that are singletons.
|
|
164
87
|
*
|
|
165
88
|
* @param service - service name or class to check
|
|
166
|
-
* @returns
|
|
167
|
-
* @throws { InvalidArgument
|
|
89
|
+
* @returns true if service instance already exists, otherwise false.
|
|
90
|
+
* @throws {@link InvalidArgument} when service is null or empty
|
|
168
91
|
*/
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
throw new exceptions_1.InvalidArgument('argument cannot be null or empty');
|
|
172
|
-
}
|
|
173
|
-
const name = typeof service === 'string' ? service : service.name;
|
|
174
|
-
if (this.cache.has(name)) {
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
if (this.parent && parent) {
|
|
178
|
-
return this.parent.has(name);
|
|
179
|
-
}
|
|
180
|
-
return false;
|
|
92
|
+
isResolved(service, parent = true) {
|
|
93
|
+
return this.Cache.has(service, parent);
|
|
181
94
|
}
|
|
182
95
|
/**
|
|
183
96
|
*
|
|
184
|
-
* @param type type to resolve
|
|
185
|
-
* @param options options passed to constructor / factory
|
|
186
|
-
* @param check strict check if serivice is registered in container before resolving. Default behavior is to not check and resolve
|
|
97
|
+
* @param type - type to resolve
|
|
98
|
+
* @param options - options passed to constructor / factory
|
|
99
|
+
* @param check - strict check if serivice is registered in container before resolving. Default behavior is to not check and resolve
|
|
187
100
|
*/
|
|
188
101
|
resolve(type, options, check) {
|
|
189
|
-
|
|
190
|
-
if (_.isNil(type)) {
|
|
102
|
+
if (!type) {
|
|
191
103
|
throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
|
|
192
104
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
throw new Error(`Type ${sourceType} is not registered at container`);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
105
|
+
const sourceType = type instanceof array_1.TypedArray ? type.Type : type;
|
|
106
|
+
const sourceName = (0, helpers_1.getTypeName)(type);
|
|
198
107
|
const opt = typeof options === 'boolean' ? null : options;
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
208
|
-
if (typeof sourceType === 'string') {
|
|
209
|
-
return this.resolveType(sourceType, targetType[targetType.length - 1], opt);
|
|
108
|
+
const setCache = (r) => {
|
|
109
|
+
this.Cache.add(type, r);
|
|
110
|
+
return r;
|
|
111
|
+
};
|
|
112
|
+
if (options === true || check === true) {
|
|
113
|
+
if (!this.hasRegistered(sourceType)) {
|
|
114
|
+
throw new Error(`Type ${sourceName} is not registered at container`);
|
|
115
|
+
}
|
|
210
116
|
}
|
|
211
|
-
if (
|
|
212
|
-
|
|
213
|
-
if
|
|
214
|
-
|
|
117
|
+
if ((0, helpers_1.isTypedArray)(type)) {
|
|
118
|
+
// special case for arrays
|
|
119
|
+
// if we have in cache, retunr all we got
|
|
120
|
+
// TODO: fix this and every time check if theres is any
|
|
121
|
+
// new registerd type
|
|
122
|
+
if (this.Cache.has(type)) {
|
|
123
|
+
return this.Cache.get(type);
|
|
124
|
+
}
|
|
125
|
+
// if its array type, resolve all registered types or throw exception
|
|
126
|
+
const targetType = this.getRegisteredTypes(type);
|
|
127
|
+
if (!targetType) {
|
|
128
|
+
return [];
|
|
129
|
+
}
|
|
130
|
+
const resolved = targetType.map((r) => this.resolveType(type, r, opt));
|
|
131
|
+
if (resolved.some((r) => r instanceof Promise)) {
|
|
132
|
+
return Promise.all(resolved).then((value) => {
|
|
133
|
+
value.forEach((v) => setCache(v));
|
|
134
|
+
return value;
|
|
135
|
+
});
|
|
215
136
|
}
|
|
137
|
+
// special case, we dont want to cache multiple times
|
|
138
|
+
resolved.forEach((v) => setCache(v));
|
|
216
139
|
return resolved;
|
|
217
140
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
141
|
+
else {
|
|
142
|
+
// finaly resolve single type:
|
|
143
|
+
// 1. last registered type OR
|
|
144
|
+
// 2. if non is registered - type itself
|
|
145
|
+
let targetType = this.getRegisteredTypes(type);
|
|
146
|
+
if (!targetType) {
|
|
147
|
+
// if nothing is register under string identifier, then return null
|
|
148
|
+
if (typeof type === 'string') {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
targetType = [type];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// resolve last registered type ( newest )
|
|
156
|
+
const rValue = this.resolveType(sourceType, targetType[targetType.length - 1], opt);
|
|
157
|
+
if ((0, helpers_1.isPromise)(rValue)) {
|
|
158
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
159
|
+
return rValue.then((v) => {
|
|
160
|
+
setCache(v);
|
|
161
|
+
return v;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
setCache(rValue);
|
|
165
|
+
return rValue;
|
|
224
166
|
}
|
|
225
|
-
|
|
167
|
+
}
|
|
168
|
+
getRegisteredTypes(service, parent) {
|
|
169
|
+
return this.Registry.getTypes(service, parent);
|
|
226
170
|
}
|
|
227
171
|
resolveType(sourceType, targetType, options) {
|
|
228
|
-
const self = this;
|
|
229
|
-
const descriptor = _extractDescriptor(targetType);
|
|
230
|
-
const isFactory = !helpers_1.isConstructor(targetType) && _.isFunction(targetType);
|
|
231
172
|
/**
|
|
232
173
|
* If its a factory func, always resolve as new instance
|
|
233
174
|
*/
|
|
234
|
-
if (isFactory) {
|
|
235
|
-
return
|
|
236
|
-
}
|
|
175
|
+
if ((0, helpers_1.isFactory)(targetType)) {
|
|
176
|
+
return this.getNewInstance((0, helpers_1.getTypeName)(sourceType), targetType, null, options);
|
|
177
|
+
}
|
|
178
|
+
// we now know its not factory func
|
|
179
|
+
// but typescript complains about this
|
|
180
|
+
// becouse isFactory is custom type check
|
|
181
|
+
const tType = targetType;
|
|
182
|
+
const sName = (0, helpers_1.getTypeName)(sourceType);
|
|
183
|
+
const descriptor = this.extractDescriptor(tType);
|
|
184
|
+
// check if is singleton,
|
|
185
|
+
// resolving strategy per container is treatead as singleton
|
|
186
|
+
// in this particular container
|
|
187
|
+
const isSingletonInChild = descriptor.resolver === enums_1.ResolveType.PerChildContainer;
|
|
188
|
+
const isSingleton = descriptor.resolver === enums_1.ResolveType.Singleton;
|
|
189
|
+
const getCachedInstance = (e, parent) => {
|
|
190
|
+
if (this.isResolved(e, parent)) {
|
|
191
|
+
return this.get(e, parent);
|
|
192
|
+
}
|
|
193
|
+
return null;
|
|
194
|
+
};
|
|
195
|
+
const resolve = (d, t, i) => {
|
|
196
|
+
if (d.resolver === enums_1.ResolveType.NewInstance) {
|
|
197
|
+
return this.getNewInstance((0, helpers_1.getTypeName)(sourceType), t, i, options);
|
|
198
|
+
}
|
|
199
|
+
this.Registry.register(sName, t);
|
|
200
|
+
return getCachedInstance(tType, d.resolver === enums_1.ResolveType.Singleton ? true : false) || this.getNewInstance((0, helpers_1.getTypeName)(sourceType), t, i, options);
|
|
201
|
+
};
|
|
237
202
|
// check cache if needed
|
|
238
|
-
if (
|
|
239
|
-
if (
|
|
240
|
-
|
|
203
|
+
if (isSingletonInChild || isSingleton) {
|
|
204
|
+
// if its singleton ( not per child container )
|
|
205
|
+
// check also in parent containers
|
|
206
|
+
// ------- IMPORTANT ------------
|
|
207
|
+
// TODO: in future allow to check in runtime if target type is cashed,
|
|
208
|
+
// now, if for example we resolve array of some type,
|
|
209
|
+
// when we later register another type of base class used in typed array
|
|
210
|
+
// we will not resolve it, becaouse contaienr will not check
|
|
211
|
+
// if in cache this new type exists ( only check if type in array exists )
|
|
212
|
+
const cached = getCachedInstance(sourceType, isSingleton);
|
|
213
|
+
if (cached) {
|
|
214
|
+
return cached;
|
|
241
215
|
}
|
|
242
216
|
}
|
|
243
|
-
const deps =
|
|
217
|
+
const deps = this.resolveDependencies(descriptor.inject);
|
|
244
218
|
if (deps instanceof Promise) {
|
|
245
|
-
return deps
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}).then(_setCache);
|
|
219
|
+
return deps.then((resolvedDependencies) => {
|
|
220
|
+
return resolve(descriptor, tType, resolvedDependencies);
|
|
221
|
+
});
|
|
249
222
|
}
|
|
250
223
|
else {
|
|
251
|
-
const resInstance =
|
|
224
|
+
const resInstance = resolve(descriptor, tType, deps);
|
|
252
225
|
if (resInstance instanceof Promise) {
|
|
253
|
-
return resInstance
|
|
226
|
+
return resInstance;
|
|
254
227
|
}
|
|
255
|
-
_setCache(resInstance);
|
|
256
228
|
return resInstance;
|
|
257
229
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
230
|
+
}
|
|
231
|
+
getNewInstance(sourceType, typeToCreate, a, options) {
|
|
232
|
+
let args = [null];
|
|
233
|
+
let newInstance = null;
|
|
234
|
+
/**
|
|
235
|
+
* If type is not Constructable, we assume its factory function,
|
|
236
|
+
* just call it with `this` container.
|
|
237
|
+
*/
|
|
238
|
+
if ((0, helpers_1.isFactory)(typeToCreate)) {
|
|
239
|
+
newInstance = typeToCreate(this, ...(options !== null && options !== void 0 ? options : []));
|
|
268
240
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
return _getNewInstance(t, i);
|
|
241
|
+
else {
|
|
242
|
+
if (a.constructor.name === 'Array') {
|
|
243
|
+
args = args.concat(a.filter((i) => !i.autoinject).map((i) => i.instance));
|
|
273
244
|
}
|
|
274
|
-
if (
|
|
275
|
-
|
|
245
|
+
if (options && options.length !== 0) {
|
|
246
|
+
args = args.concat(options);
|
|
276
247
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
248
|
+
/* eslint-disable */
|
|
249
|
+
newInstance = new (Function.prototype.bind.apply(typeToCreate, args))();
|
|
250
|
+
for (const ai of a.filter((i) => i.autoinject)) {
|
|
251
|
+
// TYPE HACK to tell typescript we dont care type
|
|
252
|
+
/* eslint-disable */
|
|
253
|
+
newInstance[`${ai.autoinjectKey}`] = ai.instance;
|
|
281
254
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
if (!t) {
|
|
296
|
-
return;
|
|
297
|
-
}
|
|
298
|
-
reduce(t.prototype);
|
|
299
|
-
reduce(t.__proto__);
|
|
300
|
-
if (t[decorators_1.DI_DESCRIPTION_SYMBOL]) {
|
|
301
|
-
descriptor.inject = descriptor.inject.concat(t[decorators_1.DI_DESCRIPTION_SYMBOL].inject);
|
|
302
|
-
descriptor.resolver = t[decorators_1.DI_DESCRIPTION_SYMBOL].resolver;
|
|
303
|
-
}
|
|
255
|
+
if ((0, helpers_1.isAsyncModule)(newInstance)) {
|
|
256
|
+
return new Promise((res, rej) => {
|
|
257
|
+
newInstance
|
|
258
|
+
.resolveAsync()
|
|
259
|
+
.then(() => {
|
|
260
|
+
this.emit(`di.resolved.${typeToCreate.name}`, this, newInstance);
|
|
261
|
+
this.emit(`di.resolved.${sourceType}`, this, newInstance);
|
|
262
|
+
})
|
|
263
|
+
.then(() => {
|
|
264
|
+
res(newInstance);
|
|
265
|
+
})
|
|
266
|
+
.catch((err) => rej(err));
|
|
267
|
+
});
|
|
304
268
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
const promiseOrVal = self.resolve(t.inject);
|
|
309
|
-
if (promiseOrVal instanceof Promise) {
|
|
310
|
-
return new Promise((res, _) => {
|
|
311
|
-
res(promiseOrVal);
|
|
312
|
-
}).then((val) => {
|
|
313
|
-
return {
|
|
314
|
-
autoinject: t.autoinject,
|
|
315
|
-
autoinjectKey: t.autoinjectKey,
|
|
316
|
-
instance: val,
|
|
317
|
-
};
|
|
318
|
-
});
|
|
269
|
+
else {
|
|
270
|
+
if (newInstance instanceof interfaces_1.SyncModule) {
|
|
271
|
+
newInstance.resolve();
|
|
319
272
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
autoinjectKey: t.autoinjectKey,
|
|
323
|
-
instance: promiseOrVal,
|
|
324
|
-
};
|
|
325
|
-
});
|
|
326
|
-
if (dependencies.some(p => p instanceof Promise)) {
|
|
327
|
-
return Promise.all(dependencies);
|
|
273
|
+
this.emit(`di.resolved.${typeToCreate.name}`, this, newInstance);
|
|
274
|
+
this.emit(`di.resolved.${sourceType}`, this, newInstance);
|
|
328
275
|
}
|
|
329
|
-
return dependencies;
|
|
330
276
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
277
|
+
return newInstance;
|
|
278
|
+
}
|
|
279
|
+
hasRegisteredType(source, type, parent) {
|
|
280
|
+
return this.Registry.hasRegisteredType(source, type, parent);
|
|
281
|
+
}
|
|
282
|
+
resolveDependencies(toInject) {
|
|
283
|
+
const dependencies = toInject.map((t) => {
|
|
284
|
+
const promiseOrVal = this.resolve(t.inject);
|
|
285
|
+
if (promiseOrVal instanceof Promise) {
|
|
286
|
+
return new Promise((res, _) => {
|
|
287
|
+
res(promiseOrVal);
|
|
288
|
+
}).then((val) => {
|
|
289
|
+
return {
|
|
290
|
+
autoinject: t.autoinject,
|
|
291
|
+
autoinjectKey: t.autoinjectKey,
|
|
292
|
+
instance: val,
|
|
293
|
+
};
|
|
294
|
+
});
|
|
334
295
|
}
|
|
335
|
-
return
|
|
296
|
+
return {
|
|
297
|
+
autoinject: t.autoinject,
|
|
298
|
+
autoinjectKey: t.autoinjectKey,
|
|
299
|
+
instance: promiseOrVal,
|
|
300
|
+
};
|
|
301
|
+
});
|
|
302
|
+
if (dependencies.some((p) => p instanceof Promise)) {
|
|
303
|
+
return Promise.all(dependencies);
|
|
336
304
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
305
|
+
return dependencies;
|
|
306
|
+
}
|
|
307
|
+
extractDescriptor(type) {
|
|
308
|
+
const descriptor = {
|
|
309
|
+
inject: [],
|
|
310
|
+
resolver: enums_1.ResolveType.Singleton,
|
|
311
|
+
};
|
|
312
|
+
reduce(type);
|
|
313
|
+
descriptor.inject = (0, helpers_1.uniqBy)(descriptor.inject, (a, b) => {
|
|
314
|
+
if (a.inject instanceof array_1.TypedArray && b.inject instanceof array_1.TypedArray) {
|
|
315
|
+
return (0, helpers_1.getTypeName)(a.inject.Type) === (0, helpers_1.getTypeName)(b.inject.Type);
|
|
346
316
|
}
|
|
347
317
|
else {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
if (
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
self.emit(`di.resolved.${_getNameOfResolvedType()}`);
|
|
362
|
-
}).then(() => {
|
|
363
|
-
res(newInstance);
|
|
364
|
-
});
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
if (newInstance instanceof interfaces_1.SyncModule) {
|
|
369
|
-
newInstance.resolve(self);
|
|
370
|
-
}
|
|
371
|
-
self.emit(`di.resolved.${_getNameOfResolvedType()}`);
|
|
318
|
+
return a.inject.name === b.inject.name;
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
return descriptor;
|
|
322
|
+
function reduce(t) {
|
|
323
|
+
if (t) {
|
|
324
|
+
// for descriptors defined on class declarations
|
|
325
|
+
reduce(t.prototype);
|
|
326
|
+
// for descriptors defined on class properties eg. @Autoinject()
|
|
327
|
+
reduce(t.__proto__);
|
|
328
|
+
if (t[`${decorators_1.DI_DESCRIPTION_SYMBOL}`]) {
|
|
329
|
+
descriptor.inject = descriptor.inject.concat(t[`${decorators_1.DI_DESCRIPTION_SYMBOL}`].inject);
|
|
330
|
+
descriptor.resolver = t[`${decorators_1.DI_DESCRIPTION_SYMBOL}`].resolver;
|
|
372
331
|
}
|
|
373
332
|
}
|
|
374
|
-
return newInstance;
|
|
375
333
|
}
|
|
376
334
|
}
|
|
377
|
-
_hasRegisteredType(source, type) {
|
|
378
|
-
const sourceName = typeof source === 'string' ? source : source.name;
|
|
379
|
-
const targetName = typeof type === 'string' ? type : type.name;
|
|
380
|
-
if (this.registry.has(sourceName)) {
|
|
381
|
-
return this.registry.get(sourceName).find(s => s.name === targetName) !== undefined;
|
|
382
|
-
}
|
|
383
|
-
return false;
|
|
384
|
-
}
|
|
385
|
-
//
|
|
386
|
-
// allows container instance to be resolved
|
|
387
|
-
registerSelf() {
|
|
388
|
-
this.cache.set('Container', this);
|
|
389
|
-
}
|
|
390
335
|
}
|
|
391
336
|
exports.Container = Container;
|
|
392
337
|
//# sourceMappingURL=container.js.map
|
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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"}
|