@spinajs/di 2.0.86 → 2.0.88

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.
Files changed (133) hide show
  1. package/lib/{array.d.ts → cjs/array.d.ts} +0 -0
  2. package/lib/cjs/array.d.ts.map +1 -0
  3. package/lib/cjs/array.js +14 -0
  4. package/lib/cjs/array.js.map +1 -0
  5. package/lib/{binder.d.ts → cjs/binder.d.ts} +0 -0
  6. package/lib/cjs/binder.d.ts.map +1 -0
  7. package/lib/cjs/binder.js +97 -0
  8. package/lib/cjs/binder.js.map +1 -0
  9. package/lib/{container-cache.d.ts → cjs/container-cache.d.ts} +0 -0
  10. package/lib/cjs/container-cache.d.ts.map +1 -0
  11. package/lib/cjs/container-cache.js +64 -0
  12. package/lib/cjs/container-cache.js.map +1 -0
  13. package/lib/cjs/container.d.ts +134 -0
  14. package/lib/cjs/container.d.ts.map +1 -0
  15. package/lib/cjs/container.js +466 -0
  16. package/lib/cjs/container.js.map +1 -0
  17. package/lib/{decorators.d.ts → cjs/decorators.d.ts} +0 -0
  18. package/lib/cjs/decorators.d.ts.map +1 -0
  19. package/lib/cjs/decorators.js +304 -0
  20. package/lib/cjs/decorators.js.map +1 -0
  21. package/lib/{enums.d.ts → cjs/enums.d.ts} +0 -0
  22. package/lib/cjs/enums.d.ts.map +1 -0
  23. package/lib/cjs/enums.js +36 -0
  24. package/lib/cjs/enums.js.map +1 -0
  25. package/lib/{exceptions.d.ts → cjs/exceptions.d.ts} +0 -0
  26. package/lib/cjs/exceptions.d.ts.map +1 -0
  27. package/lib/cjs/exceptions.js +26 -0
  28. package/lib/cjs/exceptions.js.map +1 -0
  29. package/lib/{helpers.d.ts → cjs/helpers.d.ts} +0 -0
  30. package/lib/cjs/helpers.d.ts.map +1 -0
  31. package/lib/cjs/helpers.js +69 -0
  32. package/lib/cjs/helpers.js.map +1 -0
  33. package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  34. package/lib/cjs/index.d.ts.map +1 -0
  35. package/lib/cjs/index.js +42 -0
  36. package/lib/cjs/index.js.map +1 -0
  37. package/lib/cjs/interfaces.d.ts +152 -0
  38. package/lib/cjs/interfaces.d.ts.map +1 -0
  39. package/lib/cjs/interfaces.js +48 -0
  40. package/lib/cjs/interfaces.js.map +1 -0
  41. package/lib/{registry.d.ts → cjs/registry.d.ts} +0 -0
  42. package/lib/cjs/registry.d.ts.map +1 -0
  43. package/lib/cjs/registry.js +81 -0
  44. package/lib/cjs/registry.js.map +1 -0
  45. package/lib/{root.d.ts → cjs/root.d.ts} +0 -0
  46. package/lib/cjs/root.d.ts.map +1 -0
  47. package/lib/cjs/root.js +177 -0
  48. package/lib/cjs/root.js.map +1 -0
  49. package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
  50. package/lib/cjs/types.d.ts.map +1 -0
  51. package/lib/cjs/types.js +3 -0
  52. package/lib/cjs/types.js.map +1 -0
  53. package/lib/mjs/array.d.ts +11 -0
  54. package/lib/mjs/array.d.ts.map +1 -0
  55. package/lib/{array.js → mjs/array.js} +0 -0
  56. package/lib/mjs/array.js.map +1 -0
  57. package/lib/mjs/binder.d.ts +40 -0
  58. package/lib/mjs/binder.d.ts.map +1 -0
  59. package/lib/{binder.js → mjs/binder.js} +0 -0
  60. package/lib/mjs/binder.js.map +1 -0
  61. package/lib/mjs/container-cache.d.ts +18 -0
  62. package/lib/mjs/container-cache.d.ts.map +1 -0
  63. package/lib/{container-cache.js → mjs/container-cache.js} +0 -0
  64. package/lib/mjs/container-cache.js.map +1 -0
  65. package/lib/{container.d.ts → mjs/container.d.ts} +0 -0
  66. package/lib/mjs/container.d.ts.map +1 -0
  67. package/lib/{container.js → mjs/container.js} +0 -0
  68. package/lib/mjs/container.js.map +1 -0
  69. package/lib/mjs/decorators.d.ts +142 -0
  70. package/lib/mjs/decorators.d.ts.map +1 -0
  71. package/lib/{decorators.js → mjs/decorators.js} +0 -0
  72. package/lib/mjs/decorators.js.map +1 -0
  73. package/lib/mjs/enums.d.ts +32 -0
  74. package/lib/mjs/enums.d.ts.map +1 -0
  75. package/lib/{enums.js → mjs/enums.js} +1 -1
  76. package/lib/mjs/enums.js.map +1 -0
  77. package/lib/mjs/exceptions.d.ts +18 -0
  78. package/lib/mjs/exceptions.d.ts.map +1 -0
  79. package/lib/{exceptions.js → mjs/exceptions.js} +0 -0
  80. package/lib/mjs/exceptions.js.map +1 -0
  81. package/lib/mjs/helpers.d.ts +26 -0
  82. package/lib/mjs/helpers.d.ts.map +1 -0
  83. package/lib/{helpers.js → mjs/helpers.js} +0 -0
  84. package/lib/mjs/helpers.js.map +1 -0
  85. package/lib/mjs/index.d.ts +13 -0
  86. package/lib/mjs/index.d.ts.map +1 -0
  87. package/lib/{index.js → mjs/index.js} +0 -0
  88. package/lib/mjs/index.js.map +1 -0
  89. package/lib/{interfaces.d.ts → mjs/interfaces.d.ts} +0 -0
  90. package/lib/mjs/interfaces.d.ts.map +1 -0
  91. package/lib/{interfaces.js → mjs/interfaces.js} +0 -0
  92. package/lib/mjs/interfaces.js.map +1 -0
  93. package/lib/mjs/registry.d.ts +15 -0
  94. package/lib/mjs/registry.d.ts.map +1 -0
  95. package/lib/{registry.js → mjs/registry.js} +0 -0
  96. package/lib/mjs/registry.js.map +1 -0
  97. package/lib/mjs/root.d.ts +107 -0
  98. package/lib/mjs/root.d.ts.map +1 -0
  99. package/lib/{root.js → mjs/root.js} +0 -0
  100. package/lib/mjs/root.js.map +1 -0
  101. package/lib/mjs/types.d.ts +14 -0
  102. package/lib/mjs/types.d.ts.map +1 -0
  103. package/lib/{types.js → mjs/types.js} +0 -0
  104. package/lib/mjs/types.js.map +1 -0
  105. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  106. package/lib/tsconfig.tsbuildinfo +1 -0
  107. package/package.json +11 -4
  108. package/lib/array.d.ts.map +0 -1
  109. package/lib/array.js.map +0 -1
  110. package/lib/binder.d.ts.map +0 -1
  111. package/lib/binder.js.map +0 -1
  112. package/lib/container-cache.d.ts.map +0 -1
  113. package/lib/container-cache.js.map +0 -1
  114. package/lib/container.d.ts.map +0 -1
  115. package/lib/container.js.map +0 -1
  116. package/lib/decorators.d.ts.map +0 -1
  117. package/lib/decorators.js.map +0 -1
  118. package/lib/enums.d.ts.map +0 -1
  119. package/lib/enums.js.map +0 -1
  120. package/lib/exceptions.d.ts.map +0 -1
  121. package/lib/exceptions.js.map +0 -1
  122. package/lib/helpers.d.ts.map +0 -1
  123. package/lib/helpers.js.map +0 -1
  124. package/lib/index.d.ts.map +0 -1
  125. package/lib/index.js.map +0 -1
  126. package/lib/interfaces.d.ts.map +0 -1
  127. package/lib/interfaces.js.map +0 -1
  128. package/lib/registry.d.ts.map +0 -1
  129. package/lib/registry.js.map +0 -1
  130. package/lib/root.d.ts.map +0 -1
  131. package/lib/root.js.map +0 -1
  132. package/lib/types.d.ts.map +0 -1
  133. package/lib/types.js.map +0 -1
@@ -0,0 +1,466 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Container = void 0;
7
+ const exceptions_1 = require("@spinajs/exceptions");
8
+ require("reflect-metadata");
9
+ const decorators_js_1 = require("./decorators.js");
10
+ const enums_js_1 = require("./enums.js");
11
+ const helpers_js_1 = require("./helpers.js");
12
+ const interfaces_js_1 = require("./interfaces.js");
13
+ const events_1 = require("events");
14
+ const binder_js_1 = require("./binder.js");
15
+ const registry_js_1 = require("./registry.js");
16
+ const container_cache_js_1 = require("./container-cache.js");
17
+ const lodash_1 = __importDefault(require("lodash"));
18
+ const exceptions_js_1 = require("./exceptions.js");
19
+ /**
20
+ * Dependency injection container implementation
21
+ */
22
+ class Container extends events_1.EventEmitter {
23
+ /**
24
+ * Returns container cache - map object with resolved classes as singletons
25
+ */
26
+ get Cache() {
27
+ return this.cache;
28
+ }
29
+ get Registry() {
30
+ return this.registry;
31
+ }
32
+ get Parent() {
33
+ return this.parent;
34
+ }
35
+ constructor(parent) {
36
+ super();
37
+ this.registry = new registry_js_1.Registry(this);
38
+ this.cache = new container_cache_js_1.ContainerCache(this);
39
+ this.parent = parent || undefined;
40
+ }
41
+ /**
42
+ * Clears container registry and cache. shorthand for container.clearCache() && container.clearRegistry()
43
+ */
44
+ clear() {
45
+ this.clearCache();
46
+ }
47
+ async dispose() {
48
+ for (const entry of this.cache) {
49
+ if (entry.value instanceof interfaces_js_1.Service) {
50
+ await entry.value.dispose();
51
+ }
52
+ }
53
+ this.clearCache();
54
+ this.emit('di.dispose');
55
+ }
56
+ /**
57
+ * clears container registered types information
58
+ */
59
+ clearCache() {
60
+ this.cache.clear();
61
+ }
62
+ /**
63
+ * Clears container resolved types
64
+ */
65
+ clearRegistry() {
66
+ this.Registry.clear();
67
+ }
68
+ /**
69
+ * Register class/interface to DI.
70
+ * @param type - interface object to register
71
+ * @throws {@link InvalidArgument} if type is null or undefined
72
+ */
73
+ register(implementation) {
74
+ if (!implementation) {
75
+ throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
76
+ }
77
+ return new binder_js_1.Binder(implementation, this);
78
+ }
79
+ unregister(implementation) {
80
+ if (!implementation) {
81
+ throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
82
+ }
83
+ this.Registry.unregister(implementation);
84
+ }
85
+ uncache(implementation, parent) {
86
+ this.Cache.remove(implementation, parent);
87
+ }
88
+ /**
89
+ * Creates child DI container.
90
+ *
91
+ */
92
+ child() {
93
+ return new Container(this);
94
+ }
95
+ get(service, parent = true) {
96
+ // get value registered as TypedArray ( mean to return all created instances )
97
+ if (service instanceof Array && service.constructor.name === 'TypedArray') {
98
+ return this.cache.get((0, helpers_js_1.getTypeName)(service.Type));
99
+ }
100
+ const r = this.cache.get(service, parent);
101
+ return r[r.length - 1];
102
+ }
103
+ hasRegistered(service, parent = true) {
104
+ return this.Registry.hasRegistered(service, parent);
105
+ }
106
+ /**
107
+ * Checks if service is already resolved and exists in container cache.
108
+ * NOTE: check is only valid for classes that are singletons.
109
+ *
110
+ * @param service - service name or class to check
111
+ * @returns true if service instance already exists, otherwise false.
112
+ * @throws {@link InvalidArgument} when service is null or empty
113
+ */
114
+ isResolved(service, parent = true) {
115
+ return this.Cache.has(service, parent);
116
+ }
117
+ /**
118
+ *
119
+ * @param type - type to resolve
120
+ * @param options - options passed to constructor / factory
121
+ * @param check - strict check if serivice is registered in container before resolving. Default behavior is to not check and resolve
122
+ */
123
+ resolve(type, options, check, tType) {
124
+ if (!type) {
125
+ throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
126
+ }
127
+ // UGLY HACK ?
128
+ // on electron instanceof TypedArray not working ?
129
+ const sourceType = type instanceof Array && type.constructor.name === 'TypedArray' ? type.Type : type;
130
+ const sourceName = (0, helpers_js_1.getTypeName)(type);
131
+ const opt = typeof options === 'boolean' ? null : options;
132
+ if (options === true || check === true) {
133
+ if (!this.hasRegistered(sourceType)) {
134
+ throw new Error(`Type ${sourceName} is not registered at container`);
135
+ }
136
+ }
137
+ if ((0, helpers_js_1.isTypedArray)(type)) {
138
+ // special case for arrays
139
+ // if we have in cache, retunr all we got
140
+ // TODO: fix this and every time check if theres is any
141
+ // new registerd type
142
+ if (this.Cache.has(type)) {
143
+ return this.Cache.get(type);
144
+ }
145
+ // if its array type, resolve all registered types or throw exception
146
+ const targetType = this.getRegisteredTypes(type);
147
+ if (!targetType) {
148
+ return [];
149
+ }
150
+ const resolved = targetType.map((r) => this.resolveType(type, r, opt));
151
+ if (resolved.some((r) => r instanceof Promise)) {
152
+ return Promise.all(resolved);
153
+ }
154
+ return resolved;
155
+ }
156
+ else {
157
+ // finaly resolve single type:
158
+ // 1. last registered type OR
159
+ // 2. if non is registered - type itself
160
+ let targetType = this.getRegisteredTypes(type);
161
+ if (!targetType) {
162
+ // if nothing is register under string identifier, then return null
163
+ if (typeof type === 'string') {
164
+ return null;
165
+ }
166
+ else {
167
+ targetType = [type];
168
+ }
169
+ }
170
+ // if we have target function callback
171
+ // we can select whitch of targetType to resolve
172
+ //
173
+ // if not, by default last registered type is resolved
174
+ const fType = tType ?? targetType[targetType.length - 1];
175
+ const rValue = this.resolveType(sourceType, fType, opt);
176
+ return rValue;
177
+ }
178
+ }
179
+ getRegisteredTypes(service, parent) {
180
+ return this.Registry.getTypes(service, parent);
181
+ }
182
+ resolveType(sourceType, targetType, options) {
183
+ /**
184
+ * If its a factory func, always resolve as new instance
185
+ */
186
+ if ((0, helpers_js_1.isFactory)(targetType)) {
187
+ return this.getNewInstance(targetType, null, options);
188
+ }
189
+ // we now know its not factory func
190
+ // but typescript complains about this
191
+ // becouse isFactory is custom type check
192
+ const tType = targetType;
193
+ const sName = (0, helpers_js_1.getTypeName)(sourceType);
194
+ const descriptor = this.extractDescriptor(tType);
195
+ // check if is singleton,
196
+ // resolving strategy per container is treatead as singleton
197
+ // in this particular container
198
+ const isSingletonInChild = descriptor.resolver === enums_js_1.ResolveType.PerChildContainer;
199
+ const isSingleton = descriptor.resolver === enums_js_1.ResolveType.Singleton;
200
+ const setCache = (target) => {
201
+ this.Cache.add(sourceType, target);
202
+ return target;
203
+ };
204
+ const emit = (target) => {
205
+ const sourceTypeName = (0, helpers_js_1.getTypeName)(sourceType);
206
+ const targetTypeName = (0, helpers_js_1.getTypeName)(targetType);
207
+ // firs event to emit that particular type was resolved
208
+ this.emit(`di.resolved.${targetTypeName}`, this, target);
209
+ // emit that source type was resolved
210
+ if (targetTypeName !== sourceTypeName) {
211
+ this.emit(`di.resolved.${sourceTypeName}`, this, target);
212
+ }
213
+ };
214
+ const getCachedInstance = (e, parent) => {
215
+ if (this.isResolved(e, parent)) {
216
+ const rArray = this.get(e, parent);
217
+ return lodash_1.default.isArray(rArray) ? rArray.find((x) => (0, helpers_js_1.getTypeName)(x) === (0, helpers_js_1.getTypeName)(targetType)) : rArray;
218
+ }
219
+ return null;
220
+ };
221
+ const getCachedInstances = (e, parent) => {
222
+ if (this.isResolved(e, parent)) {
223
+ const rArray = this.get(e, parent);
224
+ return lodash_1.default.isArray(rArray) ? rArray : [rArray];
225
+ }
226
+ return null;
227
+ };
228
+ const createNewInstance = (t, i, options) => {
229
+ const instance = this.getNewInstance(t, i, options);
230
+ if ((0, helpers_js_1.isPromise)(instance)) {
231
+ return instance.then((r) => {
232
+ setCache(r);
233
+ emit(r);
234
+ return r;
235
+ });
236
+ }
237
+ else {
238
+ setCache(instance);
239
+ emit(instance);
240
+ return instance;
241
+ }
242
+ };
243
+ const resolve = (d, t, i) => {
244
+ if (d.resolver === enums_js_1.ResolveType.NewInstance) {
245
+ const instance = this.getNewInstance(t, i, options);
246
+ if ((0, helpers_js_1.isPromise)(instance)) {
247
+ return instance.then((r) => {
248
+ emit(r);
249
+ return r;
250
+ });
251
+ }
252
+ else {
253
+ emit(instance);
254
+ return instance;
255
+ }
256
+ }
257
+ if (d.resolver === enums_js_1.ResolveType.PerInstanceCheck) {
258
+ const cashed = getCachedInstances(tType, true);
259
+ if (cashed) {
260
+ const found = cashed.find((x) => {
261
+ if (!x.__checkInstance__) {
262
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
263
+ throw new exceptions_js_1.ResolveException(`service ${x.constructor.name} is marked as PerInstanceCheck resolver, but no __checkInstance__ function is provided`);
264
+ }
265
+ return x.__checkInstance__(options);
266
+ });
267
+ if (found) {
268
+ return found;
269
+ }
270
+ else {
271
+ return createNewInstance(t, i, options);
272
+ }
273
+ }
274
+ }
275
+ this.Registry.register(sName, t);
276
+ const cashed = getCachedInstance(tType, d.resolver === enums_js_1.ResolveType.Singleton ? true : false);
277
+ if (!cashed) {
278
+ return createNewInstance(t, i, options);
279
+ }
280
+ else {
281
+ return cashed;
282
+ }
283
+ };
284
+ // check cache if needed
285
+ if (isSingletonInChild || isSingleton) {
286
+ // if its singleton ( not per child container )
287
+ // check also in parent containers
288
+ // ------- IMPORTANT ------------
289
+ // TODO: in future allow to check in runtime if target type is cashed,
290
+ // now, if for example we resolve array of some type,
291
+ // when we later register another type of base class used in typed array
292
+ // we will not resolve it, becaouse contaienr will not check
293
+ // if in cache this new type exists ( only check if type in array exists )
294
+ const cached = getCachedInstance(sourceType, isSingleton);
295
+ if (cached) {
296
+ return cached;
297
+ }
298
+ }
299
+ const deps = this.resolveDependencies(descriptor.inject);
300
+ if (deps instanceof Promise) {
301
+ return deps.then((resolvedDependencies) => {
302
+ return resolve(descriptor, tType, resolvedDependencies);
303
+ });
304
+ }
305
+ else {
306
+ const resInstance = resolve(descriptor, tType, deps);
307
+ if (resInstance instanceof Promise) {
308
+ return resInstance;
309
+ }
310
+ return resInstance;
311
+ }
312
+ }
313
+ getNewInstance(typeToCreate, a, options) {
314
+ let args = [null];
315
+ let newInstance = null;
316
+ /**
317
+ * If type is not Constructable, we assume its factory function,
318
+ * just call it with `this` container.
319
+ */
320
+ if ((0, helpers_js_1.isFactory)(typeToCreate)) {
321
+ newInstance = typeToCreate(this, ...(options ?? []));
322
+ }
323
+ else {
324
+ if (a.constructor.name === 'Array') {
325
+ args = args.concat(a.filter((i) => !i.autoinject).map((i) => i.instance));
326
+ }
327
+ if (options && options.length !== 0) {
328
+ args = args.concat(options);
329
+ }
330
+ /* eslint-disable */
331
+ newInstance = new (Function.prototype.bind.apply(typeToCreate, args))();
332
+ for (const ai of a.filter((i) => i.autoinject)) {
333
+ // TYPE HACK to tell typescript we dont care type
334
+ /* eslint-disable */
335
+ newInstance[`${ai.autoinjectKey}`] = ai.instance;
336
+ }
337
+ if ((0, helpers_js_1.isAsyncService)(newInstance)) {
338
+ return new Promise((res, rej) => {
339
+ newInstance
340
+ .resolve()
341
+ .then(() => {
342
+ res(newInstance);
343
+ })
344
+ .catch((err) => rej(err));
345
+ });
346
+ }
347
+ else {
348
+ if (newInstance instanceof interfaces_js_1.SyncService) {
349
+ newInstance.resolve();
350
+ }
351
+ }
352
+ }
353
+ return newInstance;
354
+ }
355
+ hasRegisteredType(source, type, parent) {
356
+ return this.Registry.hasRegisteredType(source, type, parent);
357
+ }
358
+ resolveDependencies(toInject) {
359
+ const dependencies = toInject.map((t) => {
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_js_1.ServiceNotFound(`Service ${t.inject.name} is not registered in DI container`);
372
+ }
373
+ if (lodash_1.default.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 (lodash_1.default.isArray(tInject)) {
390
+ const pVals = tInject.map((x) => this.resolve(x.type, [t.options ?? x.options], false, x.type));
391
+ if (pVals.some((x) => (0, helpers_js_1.isPromise)(x))) {
392
+ promiseOrVal = Promise.all(pVals);
393
+ }
394
+ else {
395
+ promiseOrVal = pVals;
396
+ }
397
+ }
398
+ else {
399
+ promiseOrVal = this.resolve(tInject?.type ?? t.inject, [t.options ?? tInject?.options], false, tInject?.type);
400
+ }
401
+ if (promiseOrVal instanceof Promise) {
402
+ return promiseOrVal.then((val) => {
403
+ return {
404
+ autoinject: t.autoinject,
405
+ autoinjectKey: t.autoinjectKey,
406
+ instance: valOrMap(val, t),
407
+ };
408
+ });
409
+ }
410
+ return {
411
+ autoinject: t.autoinject,
412
+ autoinjectKey: t.autoinjectKey,
413
+ instance: valOrMap(promiseOrVal, t),
414
+ };
415
+ });
416
+ if (dependencies.some((p) => p instanceof Promise)) {
417
+ return Promise.all(dependencies);
418
+ }
419
+ return dependencies;
420
+ function valOrMap(val, t) {
421
+ let instance = val;
422
+ if (lodash_1.default.isArray(val) && t.mapFunc) {
423
+ instance = new Map();
424
+ for (const i of val) {
425
+ instance.set(t.mapFunc(i), i);
426
+ }
427
+ }
428
+ return instance;
429
+ }
430
+ }
431
+ extractDescriptor(type) {
432
+ const descriptor = {
433
+ inject: [],
434
+ resolver: enums_js_1.ResolveType.Singleton,
435
+ };
436
+ const rootMeta = Reflect.getMetadata(decorators_js_1.DI_DESCRIPTION_SYMBOL, type);
437
+ if (rootMeta) {
438
+ descriptor.resolver = rootMeta.resolver;
439
+ }
440
+ function geAllTypes(clz) {
441
+ if (!clz)
442
+ return undefined;
443
+ const toInject = Reflect.getMetadata(decorators_js_1.DI_DESCRIPTION_SYMBOL, clz);
444
+ if (toInject) {
445
+ toInject.inject.forEach((x) => {
446
+ const xTypeName = (0, helpers_js_1.getTypeName)(x.inject);
447
+ // if we do it by autoinject, skip filtering injection props
448
+ // autoinject can have multiple fields of same type and its identified by prop key
449
+ // we cannot override injection props in derived class
450
+ if (x.autoinject === true) {
451
+ descriptor.inject.push(x);
452
+ }
453
+ else if (descriptor.inject.find(i => (0, helpers_js_1.getTypeName)(i.inject) === xTypeName) === undefined) {
454
+ descriptor.inject.push(x);
455
+ }
456
+ });
457
+ }
458
+ // get `__proto__` and (recursively) all parent classes
459
+ geAllTypes(Object.getPrototypeOf(clz));
460
+ }
461
+ geAllTypes(type);
462
+ return descriptor;
463
+ }
464
+ }
465
+ exports.Container = Container;
466
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/container.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AAEnE,wBAAgB,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,kBAAkB,KAAK,IAAI,GAAG,GAAG,CAgB/M;AAED,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,kBAAkB,KAAK,IAAI,GAAG,GAAG,CAgBpM;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,YACrC,MAAM,OAAO,CAAC,UAO/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OA0B/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,kBAAkB,EAAE,OAAO,CAAC,EAAE,kBAAkB,OAuBxG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,aACrC,GAAG,QAAQ,MAAM,UAqBnC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,QAI/B;AAED;;GAEG;AACH,wBAAgB,WAAW,QAI1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,QAI1B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,QAI/B;AAED;;GAEG;AACH,wBAAgB,SAAS,QAExB"}