assemblerjs 1.1.3 → 1.1.4

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/dist/index.d.ts CHANGED
@@ -56,7 +56,7 @@ export declare abstract class AbstractAssembler extends AbstractEventManager imp
56
56
  abstract prepareInitHook<T = AbstractAssemblage>(instance: T, configuration?: Record<string, any>): unknown[];
57
57
  abstract addGlobal(key: string, value: any): void;
58
58
  abstract has<T>(identifier: Identifier<T>): boolean;
59
- abstract require<T>(identifier: Identifier<T> | string | symbol, configuration?: Record<string, any>): T;
59
+ abstract require<T>(identifier: Identifier<T> | string | symbol, configuration?: Record<string, any>, caller?: Identifier<any>): T;
60
60
  abstract concrete<T>(identifier: Identifier<T>): Concrete<T> | undefined;
61
61
  abstract tagged(...tags: string[]): any[];
62
62
  abstract global(key: string): any | undefined;
@@ -345,7 +345,7 @@ export declare class Assembler extends EventManager implements AbstractAssembler
345
345
  use<T>(identifier: string | symbol, object: T): T;
346
346
  prepareInitHook<T = AbstractAssemblage>(instance: T, configuration?: Record<string, any>): unknown[];
347
347
  has<T>(identifier: Identifier<T> | string | symbol): boolean;
348
- require<T>(identifier: Identifier<T> | string | symbol, configuration?: Record<string, any>): T;
348
+ require<T>(identifier: Identifier<T> | string | symbol, configuration?: Record<string, any>, caller?: Identifier<any>): T;
349
349
  concrete<T>(identifier: Identifier<T>): Concrete<T> | undefined;
350
350
  tagged(...tags: string[]): unknown[];
351
351
  addGlobal(key: string, value: any): void;
@@ -842,7 +842,7 @@ declare class InjectableManager {
842
842
  setContexts(privateContext: AssemblerPrivateContext, publicContext: AssemblerContext): void;
843
843
  register<T>(injection: Injection<T>, instance?: boolean): Injectable<T>;
844
844
  has<T>(identifier: Identifier<T>): boolean;
845
- require<T>(identifier: Identifier<T>, configuration?: Record<string, any>): T;
845
+ require<T>(identifier: Identifier<T>, configuration?: Record<string, any>, caller?: Identifier<any>): T;
846
846
  concrete<T>(identifier: Identifier<T>): any | undefined;
847
847
  tagged(...tags: string[]): unknown[];
848
848
  dispose(): void;
package/dist/index18.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index32.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let ContextResolver = class ContextResolver {
9
9
  resolve(e, r, t) {
package/dist/index18.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index32.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let ContextResolver = class ContextResolver {
5
5
  resolve(e, r, t) {
package/dist/index19.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index32.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let ConfigurationResolver = class ConfigurationResolver {
9
9
  resolve(r, o, e, n) {
package/dist/index19.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index32.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let ConfigurationResolver = class ConfigurationResolver {
5
5
  resolve(r, o, e, n) {
package/dist/index20.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index32.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let DefinitionResolver = class DefinitionResolver {
9
9
  resolve(e, r) {
package/dist/index20.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index32.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let DefinitionResolver = class DefinitionResolver {
5
5
  resolve(e, r) {
package/dist/index21.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index32.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let DisposeResolver = class DisposeResolver {
9
9
  resolve(e, r, s) {
package/dist/index21.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index32.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let DisposeResolver = class DisposeResolver {
5
5
  resolve(e, r, s) {
package/dist/index22.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const reflection = require('./index29.js');
6
6
  const parameterDecoratorFactory = require('./index17.js');
7
7
  const helpers = require('./index25.js');
8
- const resolverStore = require('./index32.js');
8
+ const resolverStore = require('./index38.js');
9
9
 
10
10
  let UseResolver = class UseResolver {
11
11
  resolve(r, o, t) {
package/dist/index22.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getOwnCustomMetadata } from './index29.mjs';
2
2
  import { ParameterDecoratorFactory } from './index17.mjs';
3
3
  import { getParamValueKey } from './index25.mjs';
4
- import { ResolverStore } from './index32.mjs';
4
+ import { ResolverStore } from './index38.mjs';
5
5
 
6
6
  let UseResolver = class UseResolver {
7
7
  resolve(r, o, t) {
package/dist/index23.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const reflection = require('./index29.js');
6
6
  const parameterDecoratorFactory = require('./index17.js');
7
7
  const helpers = require('./index25.js');
8
- const resolverStore = require('./index32.js');
8
+ const resolverStore = require('./index38.js');
9
9
 
10
10
  let GlobalResolver = class GlobalResolver {
11
11
  resolve(e, r, a) {
package/dist/index23.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getOwnCustomMetadata } from './index29.mjs';
2
2
  import { ParameterDecoratorFactory } from './index17.mjs';
3
3
  import { getParamValueKey } from './index25.mjs';
4
- import { ResolverStore } from './index32.mjs';
4
+ import { ResolverStore } from './index38.mjs';
5
5
 
6
6
  let GlobalResolver = class GlobalResolver {
7
7
  resolve(e, r, a) {
package/dist/index24.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const reflection = require('./index29.js');
6
6
  const parameterDecoratorFactory = require('./index17.js');
7
7
  const helpers = require('./index25.js');
8
- const resolverStore = require('./index32.js');
8
+ const resolverStore = require('./index38.js');
9
9
 
10
10
  let OptionalResolver = class OptionalResolver {
11
11
  resolve(o, t, n) {
package/dist/index24.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getParamTypes, getOwnCustomMetadata } from './index29.mjs';
2
2
  import { ParameterDecoratorFactory } from './index17.mjs';
3
3
  import { getParamValueKey } from './index25.mjs';
4
- import { ResolverStore } from './index32.mjs';
4
+ import { ResolverStore } from './index38.mjs';
5
5
 
6
6
  let OptionalResolver = class OptionalResolver {
7
7
  resolve(o, t, n) {
package/dist/index31.js CHANGED
@@ -2,45 +2,79 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const eventManager = require('./index6.js');
5
+ const hookManager = require('./index33.js');
6
+ const resolutionStrategies = require('./index43.js');
7
+ const debugLogger = require('./index36.js');
8
+ const use = require('./index42.js');
9
+ const inject = require('./index41.js');
10
+ const injectable = require('./index44.js');
6
11
 
7
- const registerEvents = (t, n)=>{
8
- const o = t.concrete !== undefined && t.concrete.prototype instanceof eventManager.EventManager;
9
- if (o) {
10
- const e = n;
11
- const o = e.channels;
12
- for (const n of t.events){
13
- if (!o.has(n)) e.addChannels(n);
14
- if (!t.privateContext.events.has(n)) t.privateContext.addChannels(n);
12
+ class InjectableManager {
13
+ setContexts(e, t) {
14
+ this.privateContext = e;
15
+ this.publicContext = t;
16
+ }
17
+ register(s, n = false) {
18
+ const a = debugLogger.DebugLogger.getInstance();
19
+ const c = n === true ? use.resolveInstanceInjectionTuple(s) : inject.resolveInjectionTuple(s);
20
+ if (this.has(c.identifier)) {
21
+ throw new Error(`An assemblage is already registered with identifier '${c.identifier.name}'.`);
22
+ }
23
+ const l = injectable.Injectable.of(c, this.privateContext, this.publicContext);
24
+ a.logRegistration(l);
25
+ this.injectables.set(l.identifier, l);
26
+ if (l.concrete) {
27
+ hookManager.HookManager.callHook(l.concrete, 'onRegister', this.publicContext, l.configuration);
15
28
  }
16
- for (const e of t.events){
17
- n.on(e, (...n)=>{
18
- t.privateContext.emit(e, ...n);
29
+ return l;
30
+ }
31
+ has(e) {
32
+ return this.injectables.has(e);
33
+ }
34
+ require(e, t, i) {
35
+ if (!this.injectables.has(e)) {
36
+ const t = `Class with identifier '${e.name}' has not been registered or is a circular dependency.`;
37
+ debugLogger.DebugLogger.getInstance().log('error', 'Resolution failed', {
38
+ identifier: e.name,
39
+ caller: i ? i?.name || String(i) : 'unknown',
40
+ error: t
19
41
  });
42
+ throw new Error(t);
20
43
  }
21
- } else {
22
- for (const e of t.events){
23
- if (!t.privateContext.events.has(e)) t.privateContext.addChannels(e);
44
+ const r = this.injectables.get(e);
45
+ if (r.isSingleton) {
46
+ return this.singletonStrategy.resolve(r, t);
47
+ } else {
48
+ return this.transientStrategy.resolve(r, t);
24
49
  }
25
50
  }
26
- };
27
- const unregisterEvents = (t, n)=>{
28
- const o = t.concrete !== undefined && t.concrete.prototype instanceof eventManager.EventManager;
29
- if (o) {
30
- const e = n;
31
- for (const n of t.events){
32
- e.off(n);
33
- }
34
- e.removeChannels(...t.events);
35
- t.privateContext.removeChannels(...t.events);
36
- } else {
37
- for (const e of t.events){
38
- if (t.privateContext.events.has(e)) {
39
- t.privateContext.removeChannels(e);
51
+ concrete(e) {
52
+ const t = this.injectables.get(e);
53
+ if (t) return t.concrete;
54
+ return;
55
+ }
56
+ tagged(...e) {
57
+ const t = [];
58
+ for (const i of e){
59
+ for (const [e, r] of this.injectables){
60
+ if (r.tags.includes(i)) t.push(r.build());
40
61
  }
41
62
  }
63
+ return t;
64
+ }
65
+ dispose() {
66
+ for (const [e, t] of this.injectables){
67
+ t.dispose();
68
+ }
69
+ }
70
+ get size() {
71
+ return this.injectables.size;
72
+ }
73
+ constructor(){
74
+ this.injectables = new Map();
75
+ this.singletonStrategy = new resolutionStrategies.SingletonStrategy();
76
+ this.transientStrategy = new resolutionStrategies.TransientStrategy();
42
77
  }
43
- };
78
+ }
44
79
 
45
- exports.registerEvents = registerEvents;
46
- exports.unregisterEvents = unregisterEvents;
80
+ exports.InjectableManager = InjectableManager;
package/dist/index31.mjs CHANGED
@@ -1,41 +1,76 @@
1
- import { EventManager } from './index6.mjs';
1
+ import { HookManager } from './index33.mjs';
2
+ import { SingletonStrategy, TransientStrategy } from './index43.mjs';
3
+ import { DebugLogger } from './index36.mjs';
4
+ import { resolveInstanceInjectionTuple } from './index42.mjs';
5
+ import { resolveInjectionTuple } from './index41.mjs';
6
+ import { Injectable } from './index44.mjs';
2
7
 
3
- const registerEvents = (t, n)=>{
4
- const o = t.concrete !== undefined && t.concrete.prototype instanceof EventManager;
5
- if (o) {
6
- const e = n;
7
- const o = e.channels;
8
- for (const n of t.events){
9
- if (!o.has(n)) e.addChannels(n);
10
- if (!t.privateContext.events.has(n)) t.privateContext.addChannels(n);
8
+ class InjectableManager {
9
+ setContexts(e, t) {
10
+ this.privateContext = e;
11
+ this.publicContext = t;
12
+ }
13
+ register(s, n = false) {
14
+ const a = DebugLogger.getInstance();
15
+ const c = n === true ? resolveInstanceInjectionTuple(s) : resolveInjectionTuple(s);
16
+ if (this.has(c.identifier)) {
17
+ throw new Error(`An assemblage is already registered with identifier '${c.identifier.name}'.`);
18
+ }
19
+ const l = Injectable.of(c, this.privateContext, this.publicContext);
20
+ a.logRegistration(l);
21
+ this.injectables.set(l.identifier, l);
22
+ if (l.concrete) {
23
+ HookManager.callHook(l.concrete, 'onRegister', this.publicContext, l.configuration);
11
24
  }
12
- for (const e of t.events){
13
- n.on(e, (...n)=>{
14
- t.privateContext.emit(e, ...n);
25
+ return l;
26
+ }
27
+ has(e) {
28
+ return this.injectables.has(e);
29
+ }
30
+ require(e, t, i) {
31
+ if (!this.injectables.has(e)) {
32
+ const t = `Class with identifier '${e.name}' has not been registered or is a circular dependency.`;
33
+ DebugLogger.getInstance().log('error', 'Resolution failed', {
34
+ identifier: e.name,
35
+ caller: i ? i?.name || String(i) : 'unknown',
36
+ error: t
15
37
  });
38
+ throw new Error(t);
16
39
  }
17
- } else {
18
- for (const e of t.events){
19
- if (!t.privateContext.events.has(e)) t.privateContext.addChannels(e);
40
+ const r = this.injectables.get(e);
41
+ if (r.isSingleton) {
42
+ return this.singletonStrategy.resolve(r, t);
43
+ } else {
44
+ return this.transientStrategy.resolve(r, t);
20
45
  }
21
46
  }
22
- };
23
- const unregisterEvents = (t, n)=>{
24
- const o = t.concrete !== undefined && t.concrete.prototype instanceof EventManager;
25
- if (o) {
26
- const e = n;
27
- for (const n of t.events){
28
- e.off(n);
29
- }
30
- e.removeChannels(...t.events);
31
- t.privateContext.removeChannels(...t.events);
32
- } else {
33
- for (const e of t.events){
34
- if (t.privateContext.events.has(e)) {
35
- t.privateContext.removeChannels(e);
47
+ concrete(e) {
48
+ const t = this.injectables.get(e);
49
+ if (t) return t.concrete;
50
+ return;
51
+ }
52
+ tagged(...e) {
53
+ const t = [];
54
+ for (const i of e){
55
+ for (const [e, r] of this.injectables){
56
+ if (r.tags.includes(i)) t.push(r.build());
36
57
  }
37
58
  }
59
+ return t;
60
+ }
61
+ dispose() {
62
+ for (const [e, t] of this.injectables){
63
+ t.dispose();
64
+ }
65
+ }
66
+ get size() {
67
+ return this.injectables.size;
68
+ }
69
+ constructor(){
70
+ this.injectables = new Map();
71
+ this.singletonStrategy = new SingletonStrategy();
72
+ this.transientStrategy = new TransientStrategy();
38
73
  }
39
- };
74
+ }
40
75
 
41
- export { registerEvents, unregisterEvents };
76
+ export { InjectableManager };
package/dist/index32.js CHANGED
@@ -2,27 +2,36 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- class ResolverStore {
6
- static register(e, r) {
7
- this.resolvers.set(e, r);
5
+ class ObjectManager {
6
+ use(e, t) {
7
+ if (this.has(e)) {
8
+ throw new Error(`A value is already registered with identifier '${String(e)}'.`);
9
+ }
10
+ this.objects.set(e, t);
11
+ return t;
12
+ }
13
+ has(e) {
14
+ return this.objects.has(e);
8
15
  }
9
- static getResolver(e) {
10
- const r = this.resolvers.get(e);
11
- if (!r) {
12
- throw new Error(`No resolver found for decorator type: ${e}`);
16
+ require(e) {
17
+ if (!this.objects.has(e)) {
18
+ throw new Error(`Injected object with identifier '${String(e)}' has not been registered.`);
13
19
  }
14
- return new r();
20
+ return this.objects.get(e);
15
21
  }
16
- static hasResolver(e) {
17
- return this.resolvers.has(e);
22
+ addGlobal(e, t) {
23
+ if (this.globals.has(e)) {
24
+ throw new Error(`Global value with key '${e}' has already been registered.`);
25
+ }
26
+ this.globals.set(e, t);
18
27
  }
19
- static getRegisteredTypes() {
20
- return Array.from(this.resolvers.keys());
28
+ global(e) {
29
+ return this.globals.get(e);
21
30
  }
22
- static clear() {
23
- this.resolvers.clear();
31
+ constructor(){
32
+ this.objects = new Map();
33
+ this.globals = new Map();
24
34
  }
25
35
  }
26
- ResolverStore.resolvers = new Map();
27
36
 
28
- exports.ResolverStore = ResolverStore;
37
+ exports.ObjectManager = ObjectManager;
package/dist/index32.mjs CHANGED
@@ -1,24 +1,33 @@
1
- class ResolverStore {
2
- static register(e, r) {
3
- this.resolvers.set(e, r);
1
+ class ObjectManager {
2
+ use(e, t) {
3
+ if (this.has(e)) {
4
+ throw new Error(`A value is already registered with identifier '${String(e)}'.`);
5
+ }
6
+ this.objects.set(e, t);
7
+ return t;
8
+ }
9
+ has(e) {
10
+ return this.objects.has(e);
4
11
  }
5
- static getResolver(e) {
6
- const r = this.resolvers.get(e);
7
- if (!r) {
8
- throw new Error(`No resolver found for decorator type: ${e}`);
12
+ require(e) {
13
+ if (!this.objects.has(e)) {
14
+ throw new Error(`Injected object with identifier '${String(e)}' has not been registered.`);
9
15
  }
10
- return new r();
16
+ return this.objects.get(e);
11
17
  }
12
- static hasResolver(e) {
13
- return this.resolvers.has(e);
18
+ addGlobal(e, t) {
19
+ if (this.globals.has(e)) {
20
+ throw new Error(`Global value with key '${e}' has already been registered.`);
21
+ }
22
+ this.globals.set(e, t);
14
23
  }
15
- static getRegisteredTypes() {
16
- return Array.from(this.resolvers.keys());
24
+ global(e) {
25
+ return this.globals.get(e);
17
26
  }
18
- static clear() {
19
- this.resolvers.clear();
27
+ constructor(){
28
+ this.objects = new Map();
29
+ this.globals = new Map();
20
30
  }
21
31
  }
22
- ResolverStore.resolvers = new Map();
23
32
 
24
- export { ResolverStore };
33
+ export { ObjectManager };
package/dist/index33.js CHANGED
@@ -2,73 +2,84 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const hookManager = require('./index35.js');
6
- const resolutionStrategies = require('./index43.js');
7
- const debugLogger = require('./index38.js');
8
- const use = require('./index42.js');
9
- const inject = require('./index41.js');
10
- const injectable = require('./index44.js');
5
+ const core = require('@assemblerjs/core');
6
+ const debugLogger = require('./index36.js');
11
7
 
12
- class InjectableManager {
13
- setContexts(e, t) {
14
- this.privateContext = e;
15
- this.publicContext = t;
8
+ class HookManager {
9
+ prepareInitHook(o, t) {
10
+ this.initCache.push({
11
+ instance: o,
12
+ configuration: t
13
+ });
14
+ return this.initCache;
16
15
  }
17
- register(r, n = false) {
18
- const a = debugLogger.DebugLogger.getInstance();
19
- const c = n === true ? use.resolveInstanceInjectionTuple(r) : inject.resolveInjectionTuple(r);
20
- if (this.has(c.identifier)) {
21
- throw new Error(`An assemblage is already registered with identifier '${c.identifier.name}'.`);
16
+ callInitHooks(o) {
17
+ for (const t of this.initCache){
18
+ HookManager.callHookImmediate(t.instance, 'onInit', o, t.configuration);
22
19
  }
23
- const l = injectable.Injectable.of(c, this.privateContext, this.publicContext);
24
- a.logRegistration(l);
25
- this.injectables.set(l.identifier, l);
26
- if (l.concrete) {
27
- hookManager.HookManager.callHook(l.concrete, 'onRegister', this.publicContext, l.configuration);
20
+ }
21
+ callInitedHooks(o) {
22
+ for (const t of [
23
+ ...this.initCache
24
+ ].reverse()){
25
+ HookManager.callHookImmediate(t.instance, 'onInited', o, t.configuration);
28
26
  }
29
- return l;
30
27
  }
31
- has(e) {
32
- return this.injectables.has(e);
28
+ clearCache() {
29
+ this.initCache.length = 0;
33
30
  }
34
- require(e, t) {
35
- if (!this.injectables.has(e)) {
36
- throw new Error(`Class with identifier '${e.name}' has not been registered or is a circular dependency.`);
37
- }
38
- const i = this.injectables.get(e);
39
- if (i.isSingleton) {
40
- return this.singletonStrategy.resolve(i, t);
41
- } else {
42
- return this.transientStrategy.resolve(i, t);
43
- }
31
+ getCache() {
32
+ return this.initCache;
44
33
  }
45
- concrete(e) {
46
- const t = this.injectables.get(e);
47
- if (t) return t.concrete;
48
- return;
34
+ constructor(){
35
+ this.initCache = [];
49
36
  }
50
- tagged(...e) {
51
- const t = [];
52
- for (const i of e){
53
- for (const [e, s] of this.injectables){
54
- if (s.tags.includes(i)) t.push(s.build());
37
+ }
38
+ HookManager.callHook = (e, i, n, a)=>{
39
+ const c = debugLogger.DebugLogger.getInstance();
40
+ const r = c.logHook(i, e, a);
41
+ return new Promise((t, c)=>{
42
+ const s = e[i];
43
+ if (s) {
44
+ if (core.isAsync(s)) {
45
+ s.bind(e)(n, a).then(()=>{
46
+ if (r) r();
47
+ t();
48
+ }).catch((o)=>{
49
+ if (r) r();
50
+ c(o);
51
+ });
52
+ return;
53
+ }
54
+ try {
55
+ s.bind(e)(n, a);
56
+ if (r) r();
57
+ t();
58
+ } catch (o) {
59
+ if (r) r();
60
+ c(o);
55
61
  }
62
+ } else {
63
+ if (r) r();
64
+ t();
56
65
  }
57
- return t;
58
- }
59
- dispose() {
60
- for (const [e, t] of this.injectables){
61
- t.dispose();
66
+ });
67
+ };
68
+ HookManager.callHookImmediate = (e, i, n, a)=>{
69
+ const c = debugLogger.DebugLogger.getInstance();
70
+ const r = c.logHook(i, e, a);
71
+ const s = e[i];
72
+ if (s) {
73
+ if (core.isAsync(s)) {
74
+ s.bind(e)(n, a).catch(()=>{});
75
+ if (r) r();
76
+ return;
62
77
  }
78
+ s.bind(e)(n, a);
79
+ if (r) r();
80
+ } else {
81
+ if (r) r();
63
82
  }
64
- get size() {
65
- return this.injectables.size;
66
- }
67
- constructor(){
68
- this.injectables = new Map();
69
- this.singletonStrategy = new resolutionStrategies.SingletonStrategy();
70
- this.transientStrategy = new resolutionStrategies.TransientStrategy();
71
- }
72
- }
83
+ };
73
84
 
74
- exports.InjectableManager = InjectableManager;
85
+ exports.HookManager = HookManager;