@spinajs/di 1.0.19 → 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.
@@ -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
@@ -9,11 +9,14 @@ const decorators_1 = require("./decorators");
9
9
  const enums_1 = require("./enums");
10
10
  const helpers_1 = require("./helpers");
11
11
  const interfaces_1 = require("./interfaces");
12
+ const events_1 = require("events");
13
+ const exceptions_2 = require("./exceptions");
12
14
  /**
13
15
  * Dependency injection container implementation
14
16
  */
15
- class Container {
17
+ class Container extends events_1.EventEmitter {
16
18
  constructor(parent) {
19
+ super();
17
20
  this.registry = new Map();
18
21
  this.cache = new Map();
19
22
  this.parent = parent || undefined;
@@ -29,11 +32,22 @@ class Container {
29
32
  return this.registry;
30
33
  }
31
34
  /**
32
- * Clears container registry and cache.
35
+ * Clears container registry and cache. shorthand for container.clearCache() && container.clearRegistry()
33
36
  */
34
37
  clear() {
38
+ this.clearCache();
39
+ }
40
+ /**
41
+ * clears container registered types information
42
+ */
43
+ clearCache() {
35
44
  this.cache.clear();
36
45
  this.cache = new Map();
46
+ }
47
+ /**
48
+ * Clears container resolved types
49
+ */
50
+ clearRegistry() {
37
51
  this.registry.clear();
38
52
  this.registerSelf();
39
53
  }
@@ -97,11 +111,21 @@ class Container {
97
111
  if (typeof identifier === 'string') {
98
112
  return _get(identifier);
99
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
+ }
100
125
  if (service instanceof array_1.TypedArray) {
101
126
  return identifier.map(t => _get(t.name));
102
127
  }
103
- const isFactory = !helpers_1.isConstructor(identifier[0]) && _.isFunction(identifier[0]);
104
- return _get(isFactory ? (typeof service === 'string' ? service : service.name) : identifier[0].name);
128
+ return _get(identifier[identifier.length - 1].name);
105
129
  function _get(i) {
106
130
  if (self.cache.has(i)) {
107
131
  return self.cache.get(i);
@@ -185,7 +209,7 @@ class Container {
185
209
  return this.resolveType(sourceType, targetType[targetType.length - 1], opt);
186
210
  }
187
211
  if (isArray) {
188
- const resolved = targetType.map(r => this.resolveType(sourceType, r, opt));
212
+ const resolved = targetType.map(r => this.resolveArrayType(sourceType, r, opt));
189
213
  if (resolved.some(r => r instanceof Promise)) {
190
214
  return Promise.all(resolved);
191
215
  }
@@ -193,14 +217,27 @@ class Container {
193
217
  }
194
218
  return this.resolveType(sourceType, targetType[targetType.length - 1], opt);
195
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
+ }
196
227
  resolveType(sourceType, targetType, options) {
197
228
  const self = this;
198
229
  const descriptor = _extractDescriptor(targetType);
199
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
+ }
200
237
  // check cache if needed
201
238
  if (descriptor.resolver === enums_1.ResolveType.Singleton || descriptor.resolver === enums_1.ResolveType.PerChildContainer) {
202
- if (this.has(isFactory ? sourceType : targetType, descriptor.resolver === enums_1.ResolveType.Singleton)) {
203
- return this.get(isFactory ? sourceType : targetType);
239
+ if (this.has(targetType, descriptor.resolver === enums_1.ResolveType.Singleton)) {
240
+ return this.get(targetType);
204
241
  }
205
242
  }
206
243
  const deps = _resolveDeps(descriptor.inject);
@@ -208,8 +245,7 @@ class Container {
208
245
  return deps
209
246
  .then(resolvedDependencies => {
210
247
  return _resolve(descriptor, targetType, resolvedDependencies);
211
- })
212
- .then(_setCache);
248
+ }).then(_setCache);
213
249
  }
214
250
  else {
215
251
  const resInstance = _resolve(descriptor, targetType, deps);
@@ -219,14 +255,12 @@ class Container {
219
255
  _setCache(resInstance);
220
256
  return resInstance;
221
257
  }
258
+ function _getNameOfResolvedType() {
259
+ return targetType.name;
260
+ }
222
261
  function _setCache(r) {
223
- const isFactory = !helpers_1.isConstructor(targetType) && _.isFunction(targetType);
224
262
  const checkParent = descriptor.resolver === enums_1.ResolveType.Singleton;
225
- const toCheck = isFactory
226
- ? typeof sourceType === 'string'
227
- ? sourceType
228
- : sourceType.name
229
- : targetType.name;
263
+ const toCheck = _getNameOfResolvedType();
230
264
  if (!self.has(toCheck, checkParent)) {
231
265
  self.Cache.set(toCheck, r);
232
266
  }
@@ -261,12 +295,12 @@ class Container {
261
295
  if (!t) {
262
296
  return;
263
297
  }
298
+ reduce(t.prototype);
299
+ reduce(t.__proto__);
264
300
  if (t[decorators_1.DI_DESCRIPTION_SYMBOL]) {
265
301
  descriptor.inject = descriptor.inject.concat(t[decorators_1.DI_DESCRIPTION_SYMBOL].inject);
266
302
  descriptor.resolver = t[decorators_1.DI_DESCRIPTION_SYMBOL].resolver;
267
303
  }
268
- reduce(t.prototype);
269
- reduce(t.__proto__);
270
304
  }
271
305
  }
272
306
  function _resolveDeps(toInject) {
@@ -324,12 +358,17 @@ class Container {
324
358
  if (newInstance instanceof interfaces_1.AsyncModule) {
325
359
  return new Promise(res => {
326
360
  newInstance.resolveAsync(self).then(() => {
361
+ self.emit(`di.resolved.${_getNameOfResolvedType()}`);
362
+ }).then(() => {
327
363
  res(newInstance);
328
364
  });
329
365
  });
330
366
  }
331
- if (newInstance instanceof interfaces_1.SyncModule) {
332
- newInstance.resolve(self);
367
+ else {
368
+ if (newInstance instanceof interfaces_1.SyncModule) {
369
+ newInstance.resolve(self);
370
+ }
371
+ self.emit(`di.resolved.${_getNameOfResolvedType()}`);
333
372
  }
334
373
  }
335
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,6 +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.InjectAll = exports.Inject = exports.Injectable = exports.DI_DESCRIPTION_SYMBOL = void 0;
3
+ exports.Singleton = exports.NewInstance = exports.PerChildInstance = exports.LazyInject = exports.Autoinject = exports.Inject = exports.Injectable = exports.DI_DESCRIPTION_SYMBOL = void 0;
4
4
  const enums_1 = require("./enums");
5
5
  const root_1 = require("./root");
6
6
  exports.DI_DESCRIPTION_SYMBOL = Symbol.for('DI_INJECTION_DESCRIPTOR');
@@ -86,7 +86,6 @@ function Inject(...args) {
86
86
  return AddDependency((descriptor) => {
87
87
  for (const a of args) {
88
88
  descriptor.inject.push({
89
- all: false,
90
89
  autoinject: false,
91
90
  autoinjectKey: '',
92
91
  inject: a,
@@ -95,39 +94,6 @@ function Inject(...args) {
95
94
  });
96
95
  }
97
96
  exports.Inject = Inject;
98
- /**
99
- * Sets dependency injection guidelines - what to inject for specified class. If multiple instances are registered at specified type,
100
- * all of them are resolved and injected
101
- * @param args - what to inject - class definitions
102
- * @example
103
- * ```javascript
104
- *
105
- * @InjectAll(Bar)
106
- * class Foo{
107
- *
108
- * barInstances : Bar[];
109
- *
110
- * constructor(bars : Bar[]){
111
- * // all Bar implementations are injected when Foo is created via DI container
112
- * this.barInstances = bar;
113
- * }
114
- * }
115
- *
116
- * ```
117
- */
118
- function InjectAll(...args) {
119
- return AddDependency((descriptor) => {
120
- for (const a of args) {
121
- descriptor.inject.push({
122
- all: true,
123
- autoinject: false,
124
- autoinjectKey: '',
125
- inject: a,
126
- });
127
- }
128
- });
129
- }
130
- exports.InjectAll = InjectAll;
131
97
  /**
132
98
  * Automatically injects dependency based on reflected property type. Uses experimental typescript reflection api
133
99
  * If decorator is applied to array property all registered type instances are injected, otherwise only first / only that exists
@@ -162,10 +128,9 @@ function Autoinject(injectType) {
162
128
  throw new Error('you must provide inject type when injecting array');
163
129
  }
164
130
  descriptor.inject.push({
165
- all: isArray ? true : false,
166
131
  autoinject: true,
167
132
  autoinjectKey: propertyKey,
168
- inject: isArray ? injectType : type,
133
+ inject: isArray ? Array.ofType(injectType) : type,
169
134
  });
170
135
  });
171
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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"}
@@ -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/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
@@ -18,4 +18,5 @@ __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./helpers"), exports);
19
19
  __exportStar(require("./container"), exports);
20
20
  __exportStar(require("./root"), exports);
21
+ __exportStar(require("./exceptions"), exports);
21
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,+CAA6B;AAC7B,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,yCAAuB"}
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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AsyncModule = exports.SyncModule = void 0;
3
+ exports.AsyncModule = exports.SyncModule = exports.Module = 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
@@ -15,10 +15,25 @@ exports.AsyncModule = exports.SyncModule = void 0;
15
15
  // export interface IAsyncStrategy {
16
16
  // resolveA: (target: any, container: IContainer) => Promise<void>;
17
17
  // }
18
- 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
+ }
19
31
  }
20
32
  exports.SyncModule = SyncModule;
21
- class AsyncModule {
33
+ class AsyncModule extends Module {
34
+ async resolveAsync(_) {
35
+ this.resolved = true;
36
+ }
22
37
  }
23
38
  exports.AsyncModule = AsyncModule;
24
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
@@ -9,15 +9,98 @@ var DI;
9
9
  * App main DI container
10
10
  */
11
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
+ */
12
80
  /**
13
81
  * Clears root container registry and cache.
14
82
  */
15
83
  function clear() {
16
- DI.RootContainer.clear();
84
+ DI.RootContainer.clearCache();
85
+ DI.RootContainer.clearRegistry();
17
86
  }
18
87
  DI.clear = clear;
19
88
  /**
20
- * 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
21
104
  * @param type - interface object to register
22
105
  * @throws { InvalidArgument } if type is null or undefined
23
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.19",
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",