@spinajs/di 1.0.16 → 1.1.5

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.js CHANGED
@@ -2,6 +2,7 @@
2
2
  // tslint:disable-next-line: no-reference
3
3
  /// <reference path="./../typings/array.d.ts" />
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TypedArray = void 0;
5
6
  class TypedArray extends Array {
6
7
  constructor(Type) {
7
8
  super();
package/lib/array.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,gDAAgD;;AAIhD,MAAa,UAAc,SAAQ,KAAQ;IACzC,YAAmB,IAAc;QAC/B,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAU;IAEjC,CAAC;CACF;AAJD,gCAIC;AAED,iDAAiD;AACjD,KAAK,CAAC,MAAM,GAAG,UAAY,IAAc;IACvC,OAAO,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,gDAAgD;;;AAIhD,MAAa,UAAc,SAAQ,KAAQ;IACzC,YAAmB,IAAc;QAC/B,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAU;IAEjC,CAAC;CACF;AAJD,gCAIC;AAED,iDAAiD;AACjD,KAAK,CAAC,MAAM,GAAG,UAAY,IAAc;IACvC,OAAO,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC"}
@@ -1,11 +1,13 @@
1
+ /// <reference types="node" />
1
2
  import 'reflect-metadata';
2
3
  import { TypedArray } from './array';
3
4
  import { IBind, IContainer, AsyncModule } from './interfaces';
4
5
  import { Class, Factory } from './types';
6
+ import { EventEmitter } from "events";
5
7
  /**
6
8
  * Dependency injection container implementation
7
9
  */
8
- export declare class Container implements IContainer {
10
+ export declare class Container extends EventEmitter implements IContainer {
9
11
  /**
10
12
  * Handles information about what is registered as what
11
13
  * eg. that class IConfiguration should be resolved as DatabaseConfiguration etc.
@@ -28,9 +30,17 @@ export declare class Container implements IContainer {
28
30
  get Registry(): Map<string, Array<Class<any>>>;
29
31
  constructor(parent?: IContainer);
30
32
  /**
31
- * Clears container registry and cache.
33
+ * Clears container registry and cache. shorthand for container.clearCache() && container.clearRegistry()
32
34
  */
33
35
  clear(): void;
36
+ /**
37
+ * clears container registered types information
38
+ */
39
+ clearCache(): void;
40
+ /**
41
+ * Clears container resolved types
42
+ */
43
+ clearRegistry(): void;
34
44
  /**
35
45
  * Register class/interface to DI.
36
46
  * @param type - interface object to register
@@ -45,6 +55,11 @@ export declare class Container implements IContainer {
45
55
  /**
46
56
  * Gets already resolved services. Works only for singleton classes.
47
57
  *
58
+ * Do not try to get service by factory func, it will always return null.
59
+ * If you somehowe want to cache instances created by factory functions,
60
+ * factory itself should do that somehow and end user should always resolve by
61
+ * assigned type
62
+ *
48
63
  * @param serviceName - name of service to get
49
64
  * @returns { null | T} - null if no service has been resolved at given name
50
65
  */
@@ -90,6 +105,7 @@ export declare class Container implements IContainer {
90
105
  */
91
106
  resolve<T>(type: TypedArray<T>, options?: any[], check?: boolean): T extends AsyncModule ? Promise<T[]> : T[];
92
107
  resolve<T>(type: TypedArray<T>, check?: boolean): T extends AsyncModule ? Promise<T[]> : T[];
108
+ private resolveArrayType;
93
109
  private resolveType;
94
110
  private _hasRegisteredType;
95
111
  private registerSelf;
package/lib/container.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Container = void 0;
3
4
  const exceptions_1 = require("@spinajs/exceptions");
4
5
  const _ = require("lodash");
5
6
  require("reflect-metadata");
@@ -8,11 +9,14 @@ const decorators_1 = require("./decorators");
8
9
  const enums_1 = require("./enums");
9
10
  const helpers_1 = require("./helpers");
10
11
  const interfaces_1 = require("./interfaces");
12
+ const events_1 = require("events");
13
+ const exceptions_2 = require("./exceptions");
11
14
  /**
12
15
  * Dependency injection container implementation
13
16
  */
14
- class Container {
17
+ class Container extends events_1.EventEmitter {
15
18
  constructor(parent) {
19
+ super();
16
20
  this.registry = new Map();
17
21
  this.cache = new Map();
18
22
  this.parent = parent || undefined;
@@ -28,11 +32,22 @@ class Container {
28
32
  return this.registry;
29
33
  }
30
34
  /**
31
- * Clears container registry and cache.
35
+ * Clears container registry and cache. shorthand for container.clearCache() && container.clearRegistry()
32
36
  */
33
37
  clear() {
38
+ this.clearCache();
39
+ }
40
+ /**
41
+ * clears container registered types information
42
+ */
43
+ clearCache() {
34
44
  this.cache.clear();
35
45
  this.cache = new Map();
46
+ }
47
+ /**
48
+ * Clears container resolved types
49
+ */
50
+ clearRegistry() {
36
51
  this.registry.clear();
37
52
  this.registerSelf();
38
53
  }
@@ -73,7 +88,7 @@ class Container {
73
88
  };
74
89
  this._impl[decorators_1.DI_DESCRIPTION_SYMBOL] = descriptor;
75
90
  return this;
76
- }
91
+ },
77
92
  };
78
93
  }
79
94
  /**
@@ -96,11 +111,21 @@ class Container {
96
111
  if (typeof identifier === 'string') {
97
112
  return _get(identifier);
98
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
+ }
99
125
  if (service instanceof array_1.TypedArray) {
100
126
  return identifier.map(t => _get(t.name));
101
127
  }
102
- const isFactory = !helpers_1.isConstructor(identifier[0]) && _.isFunction(identifier[0]);
103
- return _get(isFactory ? (typeof service === "string" ? service : service.name) : identifier[0].name);
128
+ return _get(identifier[identifier.length - 1].name);
104
129
  function _get(i) {
105
130
  if (self.cache.has(i)) {
106
131
  return self.cache.get(i);
@@ -184,7 +209,7 @@ class Container {
184
209
  return this.resolveType(sourceType, targetType[targetType.length - 1], opt);
185
210
  }
186
211
  if (isArray) {
187
- const resolved = targetType.map(r => this.resolveType(sourceType, r, opt));
212
+ const resolved = targetType.map(r => this.resolveArrayType(sourceType, r, opt));
188
213
  if (resolved.some(r => r instanceof Promise)) {
189
214
  return Promise.all(resolved);
190
215
  }
@@ -192,14 +217,27 @@ class Container {
192
217
  }
193
218
  return this.resolveType(sourceType, targetType[targetType.length - 1], opt);
194
219
  }
220
+ resolveArrayType(sourceType, targetType, options) {
221
+ const tname = typeof sourceType === 'string' ? sourceType : sourceType.name;
222
+ if (!this.Registry.has(tname)) {
223
+ throw new exceptions_2.ResolveException(`Cannot resolve array of type ${tname}, no types are registered in container.`);
224
+ }
225
+ return this.resolveType(sourceType, targetType, options);
226
+ }
195
227
  resolveType(sourceType, targetType, options) {
196
228
  const self = this;
197
229
  const descriptor = _extractDescriptor(targetType);
198
230
  const isFactory = !helpers_1.isConstructor(targetType) && _.isFunction(targetType);
231
+ /**
232
+ * If its a factory func, always resolve as new instance
233
+ */
234
+ if (isFactory) {
235
+ return _getNewInstance(targetType);
236
+ }
199
237
  // check cache if needed
200
238
  if (descriptor.resolver === enums_1.ResolveType.Singleton || descriptor.resolver === enums_1.ResolveType.PerChildContainer) {
201
- if (this.has(isFactory ? sourceType : targetType, descriptor.resolver === enums_1.ResolveType.Singleton)) {
202
- return this.get(isFactory ? sourceType : targetType);
239
+ if (this.has(targetType, descriptor.resolver === enums_1.ResolveType.Singleton)) {
240
+ return this.get(targetType);
203
241
  }
204
242
  }
205
243
  const deps = _resolveDeps(descriptor.inject);
@@ -207,8 +245,7 @@ class Container {
207
245
  return deps
208
246
  .then(resolvedDependencies => {
209
247
  return _resolve(descriptor, targetType, resolvedDependencies);
210
- })
211
- .then(_setCache);
248
+ }).then(_setCache);
212
249
  }
213
250
  else {
214
251
  const resInstance = _resolve(descriptor, targetType, deps);
@@ -218,10 +255,12 @@ class Container {
218
255
  _setCache(resInstance);
219
256
  return resInstance;
220
257
  }
258
+ function _getNameOfResolvedType() {
259
+ return targetType.name;
260
+ }
221
261
  function _setCache(r) {
222
- const isFactory = !helpers_1.isConstructor(targetType) && _.isFunction(targetType);
223
262
  const checkParent = descriptor.resolver === enums_1.ResolveType.Singleton;
224
- const toCheck = isFactory ? (typeof sourceType === 'string' ? sourceType : sourceType.name) : targetType.name;
263
+ const toCheck = _getNameOfResolvedType();
225
264
  if (!self.has(toCheck, checkParent)) {
226
265
  self.Cache.set(toCheck, r);
227
266
  }
@@ -256,12 +295,12 @@ class Container {
256
295
  if (!t) {
257
296
  return;
258
297
  }
298
+ reduce(t.prototype);
299
+ reduce(t.__proto__);
259
300
  if (t[decorators_1.DI_DESCRIPTION_SYMBOL]) {
260
301
  descriptor.inject = descriptor.inject.concat(t[decorators_1.DI_DESCRIPTION_SYMBOL].inject);
261
302
  descriptor.resolver = t[decorators_1.DI_DESCRIPTION_SYMBOL].resolver;
262
303
  }
263
- reduce(t.prototype);
264
- reduce(t.__proto__);
265
304
  }
266
305
  }
267
306
  function _resolveDeps(toInject) {
@@ -319,12 +358,17 @@ class Container {
319
358
  if (newInstance instanceof interfaces_1.AsyncModule) {
320
359
  return new Promise(res => {
321
360
  newInstance.resolveAsync(self).then(() => {
361
+ self.emit(`di.resolved.${_getNameOfResolvedType()}`);
362
+ }).then(() => {
322
363
  res(newInstance);
323
364
  });
324
365
  });
325
366
  }
326
- if (newInstance instanceof interfaces_1.SyncModule) {
327
- newInstance.resolve(self);
367
+ else {
368
+ if (newInstance instanceof interfaces_1.SyncModule) {
369
+ newInstance.resolve(self);
370
+ }
371
+ self.emit(`di.resolved.${_getNameOfResolvedType()}`);
328
372
  }
329
373
  }
330
374
  return newInstance;
@@ -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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"}
@@ -52,28 +52,7 @@ export declare function Injectable(as?: Class | string): (target: any) => void;
52
52
  *
53
53
  * ```
54
54
  */
55
- export declare function Inject(...args: Class[]): any;
56
- /**
57
- * Sets dependency injection guidelines - what to inject for specified class. If multiple instances are registered at specified type,
58
- * all of them are resolved and injected
59
- * @param args - what to inject - class definitions
60
- * @example
61
- * ```javascript
62
- *
63
- * @InjectAll(Bar)
64
- * class Foo{
65
- *
66
- * barInstances : Bar[];
67
- *
68
- * constructor(bars : Bar[]){
69
- * // all Bar implementations are injected when Foo is created via DI container
70
- * this.barInstances = bar;
71
- * }
72
- * }
73
- *
74
- * ```
75
- */
76
- export declare function InjectAll(...args: Class[]): any;
55
+ export declare function Inject(...args: Array<(Class | TypedArray<any>)>): any;
77
56
  /**
78
57
  * Automatically injects dependency based on reflected property type. Uses experimental typescript reflection api
79
58
  * If decorator is applied to array property all registered type instances are injected, otherwise only first / only that exists
package/lib/decorators.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Singleton = exports.NewInstance = exports.PerChildInstance = exports.LazyInject = exports.Autoinject = exports.Inject = exports.Injectable = exports.DI_DESCRIPTION_SYMBOL = void 0;
3
4
  const enums_1 = require("./enums");
4
5
  const root_1 = require("./root");
5
6
  exports.DI_DESCRIPTION_SYMBOL = Symbol.for('DI_INJECTION_DESCRIPTOR');
@@ -85,7 +86,6 @@ function Inject(...args) {
85
86
  return AddDependency((descriptor) => {
86
87
  for (const a of args) {
87
88
  descriptor.inject.push({
88
- all: false,
89
89
  autoinject: false,
90
90
  autoinjectKey: '',
91
91
  inject: a,
@@ -94,39 +94,6 @@ function Inject(...args) {
94
94
  });
95
95
  }
96
96
  exports.Inject = Inject;
97
- /**
98
- * Sets dependency injection guidelines - what to inject for specified class. If multiple instances are registered at specified type,
99
- * all of them are resolved and injected
100
- * @param args - what to inject - class definitions
101
- * @example
102
- * ```javascript
103
- *
104
- * @InjectAll(Bar)
105
- * class Foo{
106
- *
107
- * barInstances : Bar[];
108
- *
109
- * constructor(bars : Bar[]){
110
- * // all Bar implementations are injected when Foo is created via DI container
111
- * this.barInstances = bar;
112
- * }
113
- * }
114
- *
115
- * ```
116
- */
117
- function InjectAll(...args) {
118
- return AddDependency((descriptor) => {
119
- for (const a of args) {
120
- descriptor.inject.push({
121
- all: true,
122
- autoinject: false,
123
- autoinjectKey: '',
124
- inject: a,
125
- });
126
- }
127
- });
128
- }
129
- exports.InjectAll = InjectAll;
130
97
  /**
131
98
  * Automatically injects dependency based on reflected property type. Uses experimental typescript reflection api
132
99
  * If decorator is applied to array property all registered type instances are injected, otherwise only first / only that exists
@@ -161,10 +128,9 @@ function Autoinject(injectType) {
161
128
  throw new Error('you must provide inject type when injecting array');
162
129
  }
163
130
  descriptor.inject.push({
164
- all: isArray ? true : false,
165
131
  autoinject: true,
166
132
  autoinjectKey: propertyKey,
167
- inject: isArray ? injectType : type,
133
+ inject: isArray ? Array.ofType(injectType) : type,
168
134
  });
169
135
  });
170
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
package/lib/enums.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResolveType = void 0;
3
4
  /**
4
5
  * How to resolve class
5
6
  * @enum
package/lib/enums.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAY,WAeX;AAfD,WAAY,WAAW;IACrB;;OAEG;IACH,uDAAS,CAAA;IAET;;OAEG;IACH,2DAAW,CAAA;IAEX;;OAEG;IACH,uEAAiB,CAAA;AACnB,CAAC,EAfW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAetB"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,WAeX;AAfD,WAAY,WAAW;IACrB;;OAEG;IACH,uDAAS,CAAA;IAET;;OAEG;IACH,2DAAW,CAAA;IAEX;;OAEG;IACH,uEAAiB,CAAA;AACnB,CAAC,EAfW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAetB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Exception thrown when cannot resolve type
3
+ */
4
+ export declare class ResolveException extends Error {
5
+ /**
6
+ * Constructs new exception with message
7
+ * @param message - error message
8
+ */
9
+ constructor(message?: string);
10
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResolveException = void 0;
4
+ /**
5
+ * Exception thrown when cannot resolve type
6
+ */
7
+ class ResolveException extends Error {
8
+ /**
9
+ * Constructs new exception with message
10
+ * @param message - error message
11
+ */
12
+ constructor(message) {
13
+ super(message);
14
+ }
15
+ }
16
+ exports.ResolveException = ResolveException;
17
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IACvC;;;OAGG;IACH,YAAY,OAAgB;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AARD,4CAQC"}
package/lib/helpers.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isConstructor = void 0;
3
4
  /**
4
5
  * Checks if value is constructable type.
5
6
  * Checks for [[Construct]] internal function in object.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;AAAA;;;;;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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAA;;;;;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"}
package/lib/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from './types';
6
6
  export * from './helpers';
7
7
  export * from './container';
8
8
  export * from './root';
9
+ export * from './exceptions';
package/lib/index.js CHANGED
@@ -1,13 +1,22 @@
1
1
  "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
5
12
  Object.defineProperty(exports, "__esModule", { value: true });
6
- __export(require("./interfaces"));
7
- __export(require("./array"));
8
- __export(require("./decorators"));
9
- __export(require("./enums"));
10
- __export(require("./helpers"));
11
- __export(require("./container"));
12
- __export(require("./root"));
13
+ __exportStar(require("./interfaces"), exports);
14
+ __exportStar(require("./array"), exports);
15
+ __exportStar(require("./decorators"), exports);
16
+ __exportStar(require("./enums"), exports);
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./helpers"), exports);
19
+ __exportStar(require("./container"), exports);
20
+ __exportStar(require("./root"), exports);
21
+ __exportStar(require("./exceptions"), exports);
13
22
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,kCAA6B;AAC7B,6BAAwB;AACxB,kCAA6B;AAC7B,6BAAwB;AAExB,+BAA0B;AAC1B,iCAA4B;AAC5B,4BAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6B;AAC7B,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,yCAAuB;AACvB,+CAA6B"}
@@ -1,5 +1,7 @@
1
+ /// <reference types="node" />
1
2
  import { ResolveType } from './enums';
2
3
  import { Class, Factory } from './types';
4
+ import { EventEmitter } from "events";
3
5
  /**
4
6
  * Interface to describe DI binding behaviour
5
7
  */
@@ -23,10 +25,12 @@ export interface IBind {
23
25
  */
24
26
  singleInstance(): this;
25
27
  }
26
- export interface IContainer {
28
+ export interface IContainer extends EventEmitter {
27
29
  Cache: Map<string, any[] | any>;
28
30
  Registry: Map<string, any[] | any>;
29
31
  clear(): void;
32
+ clearRegistry(): void;
33
+ clearCache(): void;
30
34
  register<T>(implementation: Class<T> | Factory<T>): IBind;
31
35
  child(): IContainer;
32
36
  get<T>(service: TypedArray<T>, parent?: boolean): T[];
@@ -52,7 +56,6 @@ export interface IInjectDescriptor<T = any> {
52
56
  export interface IToInject<T = any> {
53
57
  inject: Class<T>;
54
58
  autoinject: boolean;
55
- all: boolean;
56
59
  autoinjectKey: string;
57
60
  }
58
61
  export interface IResolvedInjection {
@@ -68,9 +71,13 @@ export interface IResolvedInjection {
68
71
  *
69
72
  * @see FrameworkModuleSyncModule implementation
70
73
  */
71
- export declare abstract class SyncModule {
72
- abstract resolve(container: IContainer): void;
74
+ export declare class Module {
75
+ protected resolved: boolean;
76
+ get Resolved(): boolean;
73
77
  }
74
- export declare abstract class AsyncModule {
75
- abstract resolveAsync(container: IContainer): Promise<void>;
78
+ export declare abstract class SyncModule extends Module {
79
+ resolve(_: IContainer): void;
80
+ }
81
+ export declare class AsyncModule extends Module {
82
+ resolveAsync(_: IContainer): Promise<void>;
76
83
  }
package/lib/interfaces.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncModule = exports.SyncModule = exports.Module = void 0;
3
4
  /**
4
5
  * Interface to describe DI resolve strategies. Strategies are used do
5
6
  * do some work at object creation eg. initialize objects that inherits from same class
@@ -14,10 +15,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
15
  // export interface IAsyncStrategy {
15
16
  // resolveA: (target: any, container: IContainer) => Promise<void>;
16
17
  // }
17
- class SyncModule {
18
+ class Module {
19
+ constructor() {
20
+ this.resolved = false;
21
+ }
22
+ get Resolved() {
23
+ return this.resolved;
24
+ }
25
+ }
26
+ exports.Module = Module;
27
+ class SyncModule extends Module {
28
+ resolve(_) {
29
+ this.resolved = true;
30
+ }
18
31
  }
19
32
  exports.SyncModule = SyncModule;
20
- class AsyncModule {
33
+ class AsyncModule extends Module {
34
+ async resolveAsync(_) {
35
+ this.resolved = true;
36
+ }
21
37
  }
22
38
  exports.AsyncModule = AsyncModule;
23
39
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;AAkFA;;;;;;;GAOG;AACH,+BAA+B;AAC/B,6DAA6D;AAC7D,IAAI;AAEJ,oCAAoC;AACpC,uEAAuE;AACvE,IAAI;AAEJ,MAAsB,UAAU;CAE/B;AAFD,gCAEC;AAED,MAAsB,WAAW;CAEhC;AAFD,kCAEC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAsFA;;;;;;;GAOG;AACH,+BAA+B;AAC/B,6DAA6D;AAC7D,IAAI;AAEJ,oCAAoC;AACpC,uEAAuE;AACvE,IAAI;AAEJ,MAAa,MAAM;IAAnB;QACY,aAAQ,GAAY,KAAK,CAAC;IAItC,CAAC;IAHC,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AALD,wBAKC;AAED,MAAsB,UAAW,SAAQ,MAAM;IAEtC,OAAO,CAAC,CAAa;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CAEF;AAND,gCAMC;AAED,MAAa,WAAY,SAAQ,MAAM;IAC9B,KAAK,CAAC,YAAY,CAAC,CAAa;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AAJD,kCAIC"}
package/lib/root.d.ts CHANGED
@@ -5,12 +5,43 @@ export declare namespace DI {
5
5
  * App main DI container
6
6
  */
7
7
  const RootContainer: IContainer;
8
+ /***
9
+ * EVENT LISTENER STUFF
10
+ *
11
+ * Allows to use event listener stuff on root container
12
+ */
13
+ function on(event: string, listener: (...args: any) => void): IContainer;
14
+ function addListener(event: string | symbol, listener: (...args: any[]) => void): IContainer;
15
+ function once(event: string | symbol, listener: (...args: any[]) => void): IContainer;
16
+ function removeListener(event: string | symbol, listener: (...args: any[]) => void): IContainer;
17
+ function off(event: string | symbol, listener: (...args: any[]) => void): IContainer;
18
+ function removeAllListeners(event?: string | symbol): IContainer;
19
+ function setMaxListeners(n: number): IContainer;
20
+ function getMaxListeners(): number;
21
+ function listeners(event: string | symbol): Function[];
22
+ function rawListeners(event: string | symbol): Function[];
23
+ function emit(event: string | symbol, ...args: any[]): boolean;
24
+ function listenerCount(type: string | symbol): number;
25
+ function prependListener(event: string | symbol, listener: (...args: any[]) => void): IContainer;
26
+ function prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): IContainer;
27
+ function eventNames(): Array<string | symbol>;
28
+ /**
29
+ * ===========================================================================
30
+ */
8
31
  /**
9
32
  * Clears root container registry and cache.
10
33
  */
11
34
  function clear(): void;
12
35
  /**
13
- * Register class/interface to DI root container.
36
+ * Clears out root registry ( registered types in root container )
37
+ */
38
+ function clearRegistry(): void;
39
+ /**
40
+ * Cleart ous root cache ( all resolved types )
41
+ */
42
+ function clearCache(): void;
43
+ /**
44
+ * Register class/interface to DI root container. If
14
45
  * @param type - interface object to register
15
46
  * @throws { InvalidArgument } if type is null or undefined
16
47
  */
package/lib/root.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DI = void 0;
3
4
  const container_1 = require("./container");
4
5
  // tslint:disable-next-line: no-namespace
5
6
  var DI;
@@ -8,15 +9,98 @@ var DI;
8
9
  * App main DI container
9
10
  */
10
11
  DI.RootContainer = new container_1.Container();
12
+ /***
13
+ * EVENT LISTENER STUFF
14
+ *
15
+ * Allows to use event listener stuff on root container
16
+ */
17
+ function on(event, listener) {
18
+ return DI.RootContainer.on(event, listener);
19
+ }
20
+ DI.on = on;
21
+ function addListener(event, listener) {
22
+ return DI.RootContainer.addListener(event, listener);
23
+ }
24
+ DI.addListener = addListener;
25
+ function once(event, listener) {
26
+ return DI.RootContainer.once(event, listener);
27
+ }
28
+ DI.once = once;
29
+ function removeListener(event, listener) {
30
+ return DI.RootContainer.removeListener(event, listener);
31
+ }
32
+ DI.removeListener = removeListener;
33
+ function off(event, listener) {
34
+ return DI.RootContainer.off(event, listener);
35
+ }
36
+ DI.off = off;
37
+ function removeAllListeners(event) {
38
+ return DI.RootContainer.removeAllListeners(event);
39
+ }
40
+ DI.removeAllListeners = removeAllListeners;
41
+ function setMaxListeners(n) {
42
+ return DI.RootContainer.setMaxListeners(n);
43
+ }
44
+ DI.setMaxListeners = setMaxListeners;
45
+ function getMaxListeners() {
46
+ return DI.RootContainer.getMaxListeners();
47
+ }
48
+ DI.getMaxListeners = getMaxListeners;
49
+ function listeners(event) {
50
+ return DI.RootContainer.listeners(event);
51
+ }
52
+ DI.listeners = listeners;
53
+ function rawListeners(event) {
54
+ return DI.RootContainer.rawListeners(event);
55
+ }
56
+ DI.rawListeners = rawListeners;
57
+ function emit(event, ...args) {
58
+ return DI.RootContainer.emit(event, ...args);
59
+ }
60
+ DI.emit = emit;
61
+ function listenerCount(type) {
62
+ return DI.RootContainer.listenerCount(type);
63
+ }
64
+ DI.listenerCount = listenerCount;
65
+ function prependListener(event, listener) {
66
+ return DI.RootContainer.prependListener(event, listener);
67
+ }
68
+ DI.prependListener = prependListener;
69
+ function prependOnceListener(event, listener) {
70
+ return DI.RootContainer.prependOnceListener(event, listener);
71
+ }
72
+ DI.prependOnceListener = prependOnceListener;
73
+ function eventNames() {
74
+ return DI.RootContainer.eventNames();
75
+ }
76
+ DI.eventNames = eventNames;
77
+ /**
78
+ * ===========================================================================
79
+ */
11
80
  /**
12
81
  * Clears root container registry and cache.
13
82
  */
14
83
  function clear() {
15
- DI.RootContainer.clear();
84
+ DI.RootContainer.clearCache();
85
+ DI.RootContainer.clearRegistry();
16
86
  }
17
87
  DI.clear = clear;
18
88
  /**
19
- * Register class/interface to DI root container.
89
+ * Clears out root registry ( registered types in root container )
90
+ */
91
+ function clearRegistry() {
92
+ DI.RootContainer.clearRegistry();
93
+ }
94
+ DI.clearRegistry = clearRegistry;
95
+ /**
96
+ * Cleart ous root cache ( all resolved types )
97
+ */
98
+ function clearCache() {
99
+ DI.RootContainer.clearCache();
100
+ }
101
+ DI.clearCache = clearCache;
102
+ /**
103
+ * Register class/interface to DI root container. If
20
104
  * @param type - interface object to register
21
105
  * @throws { InvalidArgument } if type is null or undefined
22
106
  */
package/lib/root.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AAIxC,yCAAyC;AACzC,IAAiB,EAAE,CA0FlB;AA1FD,WAAiB,EAAE;IACjB;;OAEG;IACU,gBAAa,GAAe,IAAI,qBAAS,EAAE,CAAC;IAEzD;;OAEG;IACH,SAAgB,KAAK;QACnB,GAAA,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAFe,QAAK,QAEpB,CAAA;IAED;;;;OAIG;IACH,SAAgB,QAAQ,CAAI,IAA2B;QACrD,OAAO,GAAA,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAFe,WAAQ,WAEvB,CAAA;IAwBD,SAAgB,OAAO,CACrB,IAAuC,EACvC,OAAyB,EACzB,KAAe;QAEf,OAAO,GAAA,aAAa,CAAC,OAAO,CAAI,IAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IANe,UAAO,UAMtB,CAAA;IAUD,SAAgB,GAAG,CAAI,WAA8C;QACnE,OAAO,GAAA,aAAa,CAAC,GAAG,CAAC,WAAW,CAAM,CAAC;IAC7C,CAAC;IAFe,MAAG,MAElB,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,GAAG,CAAI,OAA0B;QAC/C,OAAO,GAAA,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAFe,MAAG,MAElB,CAAA;IAED;;;;OAIG;IACH,SAAgB,KAAK,CAAI,OAA0B;QACjD,OAAO,GAAA,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAFe,QAAK,QAEpB,CAAA;IACD;;;OAGG;IACH,SAAgB,KAAK;QACnB,OAAO,GAAA,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAFe,QAAK,QAEpB,CAAA;AACH,CAAC,EA1FgB,EAAE,GAAF,UAAE,KAAF,UAAE,QA0FlB"}
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": "1.0.16",
3
+ "version": "1.1.5",
4
4
  "description": "lightweight di container ",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -8,6 +8,7 @@
8
8
  "coverage": "nyc npm run test",
9
9
  "build-docs": "rimraf docs && typedoc --options typedoc.json src/",
10
10
  "build": "tsc",
11
+ "build-watch": "tsc -w",
11
12
  "prepare": "npm run build",
12
13
  "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
13
14
  "lint": "tslint -p tsconfig.json",
@@ -37,7 +38,7 @@
37
38
  },
38
39
  "homepage": "https://github.com/spinajs/di#readme",
39
40
  "dependencies": {
40
- "@spinajs/exceptions": "^1.0.0",
41
+ "@spinajs/exceptions": "^1.0.3",
41
42
  "lodash": "^4.17.14",
42
43
  "reflect-metadata": "^0.1.13"
43
44
  },