assemblerjs 1.1.19 → 1.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index13.js +1 -1
  3. package/dist/index13.mjs +1 -1
  4. package/dist/index18.js +1 -1
  5. package/dist/index18.mjs +1 -1
  6. package/dist/index19.js +1 -1
  7. package/dist/index19.mjs +1 -1
  8. package/dist/index20.js +1 -1
  9. package/dist/index20.mjs +1 -1
  10. package/dist/index21.js +1 -1
  11. package/dist/index21.mjs +1 -1
  12. package/dist/index22.js +11 -5
  13. package/dist/index22.mjs +11 -5
  14. package/dist/index23.js +13 -7
  15. package/dist/index23.mjs +13 -7
  16. package/dist/index24.js +1 -1
  17. package/dist/index24.mjs +1 -1
  18. package/dist/index31.js +35 -100
  19. package/dist/index31.mjs +34 -100
  20. package/dist/index32.js +152 -22
  21. package/dist/index32.mjs +151 -22
  22. package/dist/index33.js +35 -143
  23. package/dist/index33.mjs +35 -142
  24. package/dist/index34.js +70 -41
  25. package/dist/index34.mjs +70 -41
  26. package/dist/index35.js +49 -73
  27. package/dist/index35.mjs +49 -73
  28. package/dist/index36.js +29 -53
  29. package/dist/index36.mjs +29 -53
  30. package/dist/index37.js +170 -26
  31. package/dist/index37.mjs +170 -26
  32. package/dist/index38.js +48 -151
  33. package/dist/index38.mjs +48 -151
  34. package/dist/index39.js +16 -57
  35. package/dist/index39.mjs +16 -57
  36. package/dist/index4.js +7 -7
  37. package/dist/index4.mjs +7 -7
  38. package/dist/index40.js +100 -35
  39. package/dist/index40.mjs +100 -34
  40. package/dist/index41.js +24 -18
  41. package/dist/index41.mjs +24 -18
  42. package/dist/index45.js +54 -22
  43. package/dist/index45.mjs +54 -22
  44. package/dist/index49.js +1 -1
  45. package/dist/index49.mjs +1 -1
  46. package/dist/index50.js +2 -2
  47. package/dist/index50.mjs +2 -2
  48. package/package.json +1 -1
package/dist/index35.mjs CHANGED
@@ -1,81 +1,57 @@
1
- import { isAsync } from '@assemblerjs/core';
2
- import { DebugLogger } from './index38.mjs';
1
+ import { HookManager } from './index34.mjs';
2
+ import { DebugLogger } from './index37.mjs';
3
+ import { CycleDetector } from './index38.mjs';
4
+ import { formatIdentifier } from './index32.mjs';
5
+ import { setDefinitionValue } from './index30.mjs';
3
6
 
4
- class HookManager {
5
- prepareInitHook(o, t) {
6
- this.initCache.push({
7
- instance: o,
8
- configuration: t
7
+ class AssemblerBuilder {
8
+ build(n, r) {
9
+ const i = DebugLogger.getInstance();
10
+ setDefinitionValue('singleton', true, n);
11
+ i.logPhaseStart('registration');
12
+ const l = this.assembler.register([
13
+ n
14
+ ]);
15
+ const c = this.assembler.injectableManager.getRegisteredIdentifiers();
16
+ i.logPhaseEnd('registration', undefined, {
17
+ registered: c
9
18
  });
10
- return this.initCache;
11
- }
12
- callInitHooks(o) {
13
- for (const t of this.initCache){
14
- HookManager.callHookImmediate(t.instance, 'onInit', o, t.configuration);
15
- }
16
- }
17
- callInitedHooks(o) {
18
- for (const t of [
19
- ...this.initCache
20
- ].reverse()){
21
- HookManager.callHookImmediate(t.instance, 'onInited', o, t.configuration);
22
- }
23
- }
24
- clearCache() {
25
- this.initCache.length = 0;
26
- }
27
- getCache() {
28
- return this.initCache;
29
- }
30
- constructor(){
31
- this.initCache = [];
32
- }
33
- }
34
- HookManager.callHook = (e, i, n, a)=>{
35
- const c = DebugLogger.getInstance();
36
- const r = c.logHook(i, e, a);
37
- return new Promise((t, c)=>{
38
- const s = e[i];
39
- if (s) {
40
- if (isAsync(s)) {
41
- s.bind(e)(n, a).then(()=>{
42
- if (r) r();
43
- t();
44
- }).catch((o)=>{
45
- if (r) r();
46
- c(o);
19
+ const h = CycleDetector.getInstance().detect(this.assembler.injectableManager.getInjectables(), (e)=>formatIdentifier(e));
20
+ if (h.length > 0) {
21
+ for (const e of h){
22
+ i.log('error', 'Circular dependency detected', {
23
+ cycle: e.cycle,
24
+ path: e.path
47
25
  });
48
- return;
49
26
  }
50
- try {
51
- s.bind(e)(n, a);
52
- if (r) r();
53
- t();
54
- } catch (o) {
55
- if (r) r();
56
- c(o);
57
- }
58
- } else {
59
- if (r) r();
60
- t();
61
27
  }
62
- });
63
- };
64
- HookManager.callHookImmediate = (e, i, n, a)=>{
65
- const c = DebugLogger.getInstance();
66
- const r = c.logHook(i, e, a);
67
- const s = e[i];
68
- if (s) {
69
- if (isAsync(s)) {
70
- s.bind(e)(n, a).catch(()=>{});
71
- if (r) r();
72
- return;
28
+ i.logPhaseStart('resolution');
29
+ const g = this.assembler.require(l.identifier, r);
30
+ i.logPhaseEnd('resolution');
31
+ const m = this.assembler.hookManager.getCache().find((e)=>e.instance === g);
32
+ if (!m) {
33
+ throw new Error('Root instance not found in assemblages cache.');
73
34
  }
74
- s.bind(e)(n, a);
75
- if (r) r();
76
- } else {
77
- if (r) r();
35
+ const b = this.assembler.hookManager.getCache().indexOf(m);
36
+ this.assembler.hookManager.getCache().splice(b, 1);
37
+ i.logPhaseStart('hooks:onInit');
38
+ this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
39
+ const d = r ? {
40
+ ...l.configuration,
41
+ ...r
42
+ } : l.configuration;
43
+ HookManager.callHookImmediate(g, 'onInit', this.assembler.publicContext, d);
44
+ i.logPhaseEnd('hooks:onInit');
45
+ i.logPhaseStart('hooks:onInited');
46
+ this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
47
+ HookManager.callHookImmediate(g, 'onInited', this.assembler.publicContext, d);
48
+ i.logPhaseEnd('hooks:onInited');
49
+ this.assembler.hookManager.clearCache();
50
+ return g;
51
+ }
52
+ constructor(e){
53
+ this.assembler = e;
78
54
  }
79
- };
55
+ }
80
56
 
81
- export { HookManager };
57
+ export { AssemblerBuilder };
package/dist/index36.js CHANGED
@@ -2,60 +2,36 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const hookManager = require('./index35.js');
6
- const debugLogger = require('./index38.js');
7
- const cycleDetector = require('./index39.js');
8
- const injectableManager = require('./index33.js');
9
- const schema = require('./index30.js');
10
-
11
- class AssemblerBuilder {
12
- build(n, r) {
13
- const i = debugLogger.DebugLogger.getInstance();
14
- schema.setDefinitionValue('singleton', true, n);
15
- i.logPhaseStart('registration');
16
- const l = this.assembler.register([
17
- n
18
- ]);
19
- const c = this.assembler.injectableManager.getRegisteredIdentifiers();
20
- i.logPhaseEnd('registration', undefined, {
21
- registered: c
22
- });
23
- const h = cycleDetector.CycleDetector.getInstance().detect(this.assembler.injectableManager.getInjectables(), (e)=>injectableManager.formatIdentifier(e));
24
- if (h.length > 0) {
25
- for (const e of h){
26
- i.log('error', 'Circular dependency detected', {
27
- cycle: e.cycle,
28
- path: e.path
29
- });
30
- }
31
- }
32
- i.logPhaseStart('resolution');
33
- const g = this.assembler.require(l.identifier, r);
34
- i.logPhaseEnd('resolution');
35
- const m = this.assembler.hookManager.getCache().find((e)=>e.instance === g);
36
- if (!m) {
37
- throw new Error('Root instance not found in assemblages cache.');
38
- }
39
- const b = this.assembler.hookManager.getCache().indexOf(m);
40
- this.assembler.hookManager.getCache().splice(b, 1);
41
- i.logPhaseStart('hooks:onInit');
42
- this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
43
- const d = r ? {
44
- ...l.configuration,
45
- ...r
46
- } : l.configuration;
47
- hookManager.HookManager.callHookImmediate(g, 'onInit', this.assembler.publicContext, d);
48
- i.logPhaseEnd('hooks:onInit');
49
- i.logPhaseStart('hooks:onInited');
50
- this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
51
- hookManager.HookManager.callHookImmediate(g, 'onInited', this.assembler.publicContext, d);
52
- i.logPhaseEnd('hooks:onInited');
53
- this.assembler.hookManager.clearCache();
54
- return g;
5
+ class ContextProvider {
6
+ createPublicContext() {
7
+ return {
8
+ has: this.assembler.has.bind(this.assembler),
9
+ require: this.assembler.require.bind(this.assembler),
10
+ concrete: this.assembler.concrete.bind(this.assembler),
11
+ tagged: this.assembler.tagged.bind(this.assembler),
12
+ dispose: this.assembler.dispose.bind(this.assembler),
13
+ global: this.assembler.global.bind(this.assembler),
14
+ on: this.assembler.on.bind(this.assembler),
15
+ once: this.assembler.once.bind(this.assembler),
16
+ off: this.assembler.off.bind(this.assembler),
17
+ events: this.assembler.channels
18
+ };
19
+ }
20
+ createPrivateContext(s) {
21
+ return {
22
+ ...s,
23
+ register: this.assembler.register.bind(this.assembler),
24
+ use: this.assembler.use.bind(this.assembler),
25
+ addGlobal: this.assembler.addGlobal.bind(this.assembler),
26
+ prepareInitHook: this.assembler.prepareInitHook.bind(this.assembler),
27
+ emit: this.assembler.emit.bind(this.assembler),
28
+ addChannels: this.assembler.addChannels.bind(this.assembler),
29
+ removeChannels: this.assembler.removeChannels.bind(this.assembler)
30
+ };
55
31
  }
56
- constructor(e){
57
- this.assembler = e;
32
+ constructor(s){
33
+ this.assembler = s;
58
34
  }
59
35
  }
60
36
 
61
- exports.AssemblerBuilder = AssemblerBuilder;
37
+ exports.ContextProvider = ContextProvider;
package/dist/index36.mjs CHANGED
@@ -1,57 +1,33 @@
1
- import { HookManager } from './index35.mjs';
2
- import { DebugLogger } from './index38.mjs';
3
- import { CycleDetector } from './index39.mjs';
4
- import { formatIdentifier } from './index33.mjs';
5
- import { setDefinitionValue } from './index30.mjs';
6
-
7
- class AssemblerBuilder {
8
- build(n, r) {
9
- const i = DebugLogger.getInstance();
10
- setDefinitionValue('singleton', true, n);
11
- i.logPhaseStart('registration');
12
- const l = this.assembler.register([
13
- n
14
- ]);
15
- const c = this.assembler.injectableManager.getRegisteredIdentifiers();
16
- i.logPhaseEnd('registration', undefined, {
17
- registered: c
18
- });
19
- const h = CycleDetector.getInstance().detect(this.assembler.injectableManager.getInjectables(), (e)=>formatIdentifier(e));
20
- if (h.length > 0) {
21
- for (const e of h){
22
- i.log('error', 'Circular dependency detected', {
23
- cycle: e.cycle,
24
- path: e.path
25
- });
26
- }
27
- }
28
- i.logPhaseStart('resolution');
29
- const g = this.assembler.require(l.identifier, r);
30
- i.logPhaseEnd('resolution');
31
- const m = this.assembler.hookManager.getCache().find((e)=>e.instance === g);
32
- if (!m) {
33
- throw new Error('Root instance not found in assemblages cache.');
34
- }
35
- const b = this.assembler.hookManager.getCache().indexOf(m);
36
- this.assembler.hookManager.getCache().splice(b, 1);
37
- i.logPhaseStart('hooks:onInit');
38
- this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
39
- const d = r ? {
40
- ...l.configuration,
41
- ...r
42
- } : l.configuration;
43
- HookManager.callHookImmediate(g, 'onInit', this.assembler.publicContext, d);
44
- i.logPhaseEnd('hooks:onInit');
45
- i.logPhaseStart('hooks:onInited');
46
- this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
47
- HookManager.callHookImmediate(g, 'onInited', this.assembler.publicContext, d);
48
- i.logPhaseEnd('hooks:onInited');
49
- this.assembler.hookManager.clearCache();
50
- return g;
1
+ class ContextProvider {
2
+ createPublicContext() {
3
+ return {
4
+ has: this.assembler.has.bind(this.assembler),
5
+ require: this.assembler.require.bind(this.assembler),
6
+ concrete: this.assembler.concrete.bind(this.assembler),
7
+ tagged: this.assembler.tagged.bind(this.assembler),
8
+ dispose: this.assembler.dispose.bind(this.assembler),
9
+ global: this.assembler.global.bind(this.assembler),
10
+ on: this.assembler.on.bind(this.assembler),
11
+ once: this.assembler.once.bind(this.assembler),
12
+ off: this.assembler.off.bind(this.assembler),
13
+ events: this.assembler.channels
14
+ };
15
+ }
16
+ createPrivateContext(s) {
17
+ return {
18
+ ...s,
19
+ register: this.assembler.register.bind(this.assembler),
20
+ use: this.assembler.use.bind(this.assembler),
21
+ addGlobal: this.assembler.addGlobal.bind(this.assembler),
22
+ prepareInitHook: this.assembler.prepareInitHook.bind(this.assembler),
23
+ emit: this.assembler.emit.bind(this.assembler),
24
+ addChannels: this.assembler.addChannels.bind(this.assembler),
25
+ removeChannels: this.assembler.removeChannels.bind(this.assembler)
26
+ };
51
27
  }
52
- constructor(e){
53
- this.assembler = e;
28
+ constructor(s){
29
+ this.assembler = s;
54
30
  }
55
31
  }
56
32
 
57
- export { AssemblerBuilder };
33
+ export { ContextProvider };
package/dist/index37.js CHANGED
@@ -2,36 +2,180 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- class ContextProvider {
6
- createPublicContext() {
7
- return {
8
- has: this.assembler.has.bind(this.assembler),
9
- require: this.assembler.require.bind(this.assembler),
10
- concrete: this.assembler.concrete.bind(this.assembler),
11
- tagged: this.assembler.tagged.bind(this.assembler),
12
- dispose: this.assembler.dispose.bind(this.assembler),
13
- global: this.assembler.global.bind(this.assembler),
14
- on: this.assembler.on.bind(this.assembler),
15
- once: this.assembler.once.bind(this.assembler),
16
- off: this.assembler.off.bind(this.assembler),
17
- events: this.assembler.channels
5
+ function e(e) {
6
+ if (e === undefined) return 'undefined';
7
+ if (e === null) return 'null';
8
+ if (typeof e === 'function') {
9
+ if (e.name) return e.name;
10
+ if (e.constructor?.name && e.constructor.name !== 'Function') {
11
+ return e.constructor.name;
12
+ }
13
+ return 'AnonymousFunction';
14
+ }
15
+ if (typeof e === 'object') {
16
+ const o = e.constructor?.name;
17
+ if (o && o !== 'Object') {
18
+ return o;
19
+ }
20
+ if (e.name && typeof e.name === 'string') {
21
+ return e.name;
22
+ }
23
+ return '[Object]';
24
+ }
25
+ return String(e);
26
+ }
27
+ let NoOpDebugLogger = class NoOpDebugLogger {
28
+ configure(e) {}
29
+ log(e, o, t) {}
30
+ logBuildStart(e) {}
31
+ logBuildEnd(e, o) {}
32
+ logRegistration(e) {}
33
+ logHook(e, o, t) {}
34
+ logPhaseStart(e, o) {}
35
+ logPhaseEnd(e, o, t) {}
36
+ logResolution(e, o, t) {}
37
+ logConstruction(e) {}
38
+ logInjection(e, o) {}
39
+ };
40
+ let ActiveDebugLogger = class ActiveDebugLogger {
41
+ configure(e) {
42
+ this.options = {
43
+ ...this.options,
44
+ ...e,
45
+ logPhases: {
46
+ ...this.options.logPhases,
47
+ ...e.logPhases || {}
48
+ }
18
49
  };
19
50
  }
20
- createPrivateContext(s) {
21
- return {
22
- ...s,
23
- register: this.assembler.register.bind(this.assembler),
24
- use: this.assembler.use.bind(this.assembler),
25
- addGlobal: this.assembler.addGlobal.bind(this.assembler),
26
- prepareInitHook: this.assembler.prepareInitHook.bind(this.assembler),
27
- emit: this.assembler.emit.bind(this.assembler),
28
- addChannels: this.assembler.addChannels.bind(this.assembler),
29
- removeChannels: this.assembler.removeChannels.bind(this.assembler)
51
+ logBuildStart(e) {
52
+ this.log('info', 'Build started', {
53
+ entry: e.name
54
+ });
55
+ }
56
+ logBuildEnd(e, o) {
57
+ const t = {
58
+ entry: e.name
30
59
  };
60
+ if (o !== undefined) t.duration = `${o.toFixed(2)}ms`;
61
+ this.log('info', 'Build completed', t);
62
+ }
63
+ logRegistration(o) {
64
+ if (!this.shouldLog('registration')) return;
65
+ this.log('info', 'Registration', {
66
+ identifier: e(o.identifier),
67
+ isSingleton: o.isSingleton,
68
+ dependencies: o.dependencies.map((o)=>e(o)),
69
+ tags: o.tags
70
+ });
71
+ }
72
+ logHook(o, t, n) {
73
+ if (!this.shouldLog('hooks')) return;
74
+ const i = this.options.logTimings ? performance.now() : 0;
75
+ this.log('info', `Hook: ${o}`, {
76
+ target: e(t),
77
+ config: n
78
+ });
79
+ if (this.options.logTimings) {
80
+ return ()=>{
81
+ const e = performance.now() - i;
82
+ this.log('info', `Hook: ${o} completed`, {
83
+ duration: `${e.toFixed(2)}ms`
84
+ });
85
+ };
86
+ }
87
+ }
88
+ logPhaseStart(e, o) {
89
+ this.log('info', `Phase: ${e} started`, o);
90
+ }
91
+ logPhaseEnd(e, o, t) {
92
+ const n = o !== undefined ? {
93
+ duration: `${o.toFixed(2)}ms`
94
+ } : {};
95
+ if (t) {
96
+ Object.assign(n, t);
97
+ }
98
+ this.log('info', `Phase: ${e} ended`, Object.keys(n).length > 0 ? n : undefined);
99
+ }
100
+ logResolution(e, o, t) {
101
+ if (!this.shouldLog('resolution')) return;
102
+ this.log('info', `Resolving: ${e}`, {
103
+ strategy: `${o} strategy`,
104
+ cache: t ? 'hit' : 'miss'
105
+ });
106
+ }
107
+ logConstruction(e) {
108
+ if (!this.shouldLog('construction')) return;
109
+ this.log('info', `Constructing: ${e}`);
110
+ }
111
+ logInjection(e, o) {
112
+ if (!this.shouldLog(e === 'use' ? 'injectionUse' : 'injectionGlobal')) return;
113
+ this.log('info', `Injecting: @${e === 'use' ? 'Use' : 'Global'}`, o);
114
+ }
115
+ shouldLog(e) {
116
+ return !this.options.logPhases || this.options.logPhases[e] !== false;
117
+ }
118
+ log(e, o, t) {
119
+ if (this.options.logger) {
120
+ this.options.logger(e, o, t);
121
+ } else {
122
+ const n = `[Assembler:${e}]`;
123
+ const i = this.options.useColors !== false ? this.colorize(e, n) : n;
124
+ if (t) {
125
+ console.log(`${i} ${o}`, t);
126
+ } else {
127
+ console.log(`${i} ${o}`);
128
+ }
129
+ }
130
+ }
131
+ colorize(e, o) {
132
+ const t = {
133
+ info: '\x1b[36m',
134
+ warn: '\x1b[33m',
135
+ error: '\x1b[31m',
136
+ reset: '\x1b[0m'
137
+ };
138
+ const n = t[e] || t.info;
139
+ return `${n}${o}${t.reset}`;
140
+ }
141
+ constructor(){
142
+ this.options = {
143
+ enabled: true,
144
+ logPhases: {
145
+ registration: true,
146
+ registrationUse: true,
147
+ registrationGlobals: true,
148
+ resolution: true,
149
+ construction: true,
150
+ hooks: true,
151
+ cache: true,
152
+ injectionUse: true,
153
+ injectionGlobal: true
154
+ },
155
+ logTimings: false,
156
+ logDependencyTree: true,
157
+ useColors: true
158
+ };
159
+ }
160
+ };
161
+ class DebugLogger {
162
+ static getInstance() {
163
+ return DebugLogger.instance;
164
+ }
165
+ static enable(e) {
166
+ if (e?.enabled === false) {
167
+ DebugLogger.instance = new NoOpDebugLogger();
168
+ return;
169
+ }
170
+ DebugLogger.instance = new ActiveDebugLogger();
171
+ if (e) {
172
+ DebugLogger.instance.configure(e);
173
+ }
31
174
  }
32
- constructor(s){
33
- this.assembler = s;
175
+ static disable() {
176
+ DebugLogger.instance = new NoOpDebugLogger();
34
177
  }
35
178
  }
179
+ DebugLogger.instance = new NoOpDebugLogger();
36
180
 
37
- exports.ContextProvider = ContextProvider;
181
+ exports.DebugLogger = DebugLogger;