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 +3 -3
- package/dist/index18.js +1 -1
- package/dist/index18.mjs +1 -1
- package/dist/index19.js +1 -1
- package/dist/index19.mjs +1 -1
- package/dist/index20.js +1 -1
- package/dist/index20.mjs +1 -1
- package/dist/index21.js +1 -1
- package/dist/index21.mjs +1 -1
- package/dist/index22.js +1 -1
- package/dist/index22.mjs +1 -1
- package/dist/index23.js +1 -1
- package/dist/index23.mjs +1 -1
- package/dist/index24.js +1 -1
- package/dist/index24.mjs +1 -1
- package/dist/index31.js +66 -32
- package/dist/index31.mjs +66 -31
- package/dist/index32.js +25 -16
- package/dist/index32.mjs +25 -16
- package/dist/index33.js +68 -57
- package/dist/index33.mjs +68 -57
- package/dist/index34.js +38 -28
- package/dist/index34.mjs +38 -28
- package/dist/index35.js +28 -76
- package/dist/index35.mjs +28 -76
- package/dist/index36.js +132 -39
- package/dist/index36.mjs +132 -39
- package/dist/index37.js +39 -30
- package/dist/index37.mjs +38 -30
- package/dist/index38.js +17 -128
- package/dist/index38.mjs +17 -128
- package/dist/index4.js +8 -8
- package/dist/index4.mjs +8 -8
- package/dist/index44.js +2 -2
- package/dist/index44.mjs +2 -2
- package/dist/index48.js +1 -1
- package/dist/index48.mjs +1 -1
- package/dist/index49.js +1 -1
- package/dist/index49.mjs +1 -1
- package/dist/index50.js +12 -12
- package/dist/index50.mjs +12 -12
- package/package.json +1 -1
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('./
|
|
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
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('./
|
|
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
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('./
|
|
6
|
+
const resolverStore = require('./index38.js');
|
|
7
7
|
|
|
8
8
|
let DefinitionResolver = class DefinitionResolver {
|
|
9
9
|
resolve(e, r) {
|
package/dist/index20.mjs
CHANGED
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('./
|
|
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
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('./
|
|
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 './
|
|
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('./
|
|
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 './
|
|
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('./
|
|
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 './
|
|
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
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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.
|
|
46
|
-
exports.unregisterEvents = unregisterEvents;
|
|
80
|
+
exports.InjectableManager = InjectableManager;
|
package/dist/index31.mjs
CHANGED
|
@@ -1,41 +1,76 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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 {
|
|
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
|
|
6
|
-
|
|
7
|
-
this.
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
20
|
+
return this.objects.get(e);
|
|
15
21
|
}
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
20
|
-
return
|
|
28
|
+
global(e) {
|
|
29
|
+
return this.globals.get(e);
|
|
21
30
|
}
|
|
22
|
-
|
|
23
|
-
this.
|
|
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.
|
|
37
|
+
exports.ObjectManager = ObjectManager;
|
package/dist/index32.mjs
CHANGED
|
@@ -1,24 +1,33 @@
|
|
|
1
|
-
class
|
|
2
|
-
|
|
3
|
-
this.
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
16
|
+
return this.objects.get(e);
|
|
11
17
|
}
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
-
return
|
|
24
|
+
global(e) {
|
|
25
|
+
return this.globals.get(e);
|
|
17
26
|
}
|
|
18
|
-
|
|
19
|
-
this.
|
|
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 {
|
|
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
|
|
6
|
-
const
|
|
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
|
|
13
|
-
|
|
14
|
-
this.
|
|
15
|
-
|
|
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
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
32
|
-
|
|
28
|
+
clearCache() {
|
|
29
|
+
this.initCache.length = 0;
|
|
33
30
|
}
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
if (t) return t.concrete;
|
|
48
|
-
return;
|
|
34
|
+
constructor(){
|
|
35
|
+
this.initCache = [];
|
|
49
36
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
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.
|
|
85
|
+
exports.HookManager = HookManager;
|