assemblerjs 1.1.26 → 1.2.0

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/README.md CHANGED
@@ -83,7 +83,7 @@ class Logger implements AbstractAssemblage {
83
83
 
84
84
  // Define an application that depends on Logger
85
85
  @Assemblage({
86
- inject: [[Logger]], // Declare dependencies
86
+ provide: [[Logger]], // Declare dependencies
87
87
  })
88
88
  class App implements AbstractAssemblage {
89
89
  constructor(private logger: Logger) {}
package/dist/index.d.ts CHANGED
@@ -299,7 +299,11 @@ export declare const Assemblage: <T>(definition?: AssemblageDefinition) => Class
299
299
  export declare interface AssemblageDefinition {
300
300
  singleton?: boolean;
301
301
  events?: string[];
302
+ /**
303
+ * @deprecated Use 'provide' instead. This option will be removed in a future version.
304
+ */
302
305
  inject?: Injection<unknown>[];
306
+ provide?: Injection<unknown>[];
303
307
  use?: InstanceInjection<unknown>[];
304
308
  engage?: TransversalInjection<unknown>[];
305
309
  tags?: string | string[];
package/dist/index23.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const reflection = require('./index30.js');
6
- const debugLogger = require('./index37.js');
6
+ const debugLogger = require('./index38.js');
7
7
  const parameterDecoratorFactory = require('./index18.js');
8
8
  const helpers = require('./index26.js');
9
9
  const resolverStore = require('./index40.js');
package/dist/index23.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getOwnCustomMetadata } from './index30.mjs';
2
- import { DebugLogger } from './index37.mjs';
2
+ import { DebugLogger } from './index38.mjs';
3
3
  import { ParameterDecoratorFactory } from './index18.mjs';
4
4
  import { getParamValueKey } from './index26.mjs';
5
5
  import { ResolverStore } from './index40.mjs';
package/dist/index24.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const reflection = require('./index30.js');
6
- const debugLogger = require('./index37.js');
6
+ const debugLogger = require('./index38.js');
7
7
  const parameterDecoratorFactory = require('./index18.js');
8
8
  const helpers = require('./index26.js');
9
9
  const resolverStore = require('./index40.js');
package/dist/index24.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getOwnCustomMetadata } from './index30.mjs';
2
- import { DebugLogger } from './index37.mjs';
2
+ import { DebugLogger } from './index38.mjs';
3
3
  import { ParameterDecoratorFactory } from './index18.mjs';
4
4
  import { getParamValueKey } from './index26.mjs';
5
5
  import { ResolverStore } from './index40.mjs';
package/dist/index31.js CHANGED
@@ -6,106 +6,119 @@ const constants = require('./index29.js');
6
6
  const reflection = require('./index30.js');
7
7
  const helpers = require('./index3.js');
8
8
 
9
- const n = {
9
+ const o = {
10
10
  singleton: {
11
- test: (r)=>typeof r === 'boolean' || typeof r === 'undefined',
11
+ test: (e)=>typeof e === 'boolean' || typeof e === 'undefined',
12
12
  throw: ()=>{
13
13
  throw new Error(`'singleton' property must be of type 'boolean' or 'undefined'.`);
14
14
  },
15
- transform: (r)=>{
16
- return typeof r === 'undefined' ? true : r ? true : false;
15
+ transform: (e)=>{
16
+ return typeof e === 'undefined' ? true : e ? true : false;
17
17
  }
18
18
  },
19
19
  events: {
20
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
20
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>typeof e === 'string'),
21
21
  throw: ()=>{
22
22
  throw new Error(`'events' property must be an array of strings or 'undefined'.`);
23
23
  },
24
- transform: (r)=>r
24
+ transform: (e)=>e
25
25
  },
26
26
  inject: {
27
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
27
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>Array.isArray(e) && e.length >= 1 && e.length <= 3),
28
28
  throw: ()=>{
29
29
  throw new Error(`'inject' property must be an array of tuples of length 1, 2 or 3.`);
30
30
  },
31
- transform: (r)=>r
31
+ transform: (e)=>e
32
+ },
33
+ provide: {
34
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>Array.isArray(e) && e.length >= 1 && e.length <= 3),
35
+ throw: ()=>{
36
+ throw new Error(`'provide' property must be an array of tuples of length 1, 2 or 3.`);
37
+ },
38
+ transform: (e)=>e
32
39
  },
33
40
  use: {
34
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>{
35
- if (!Array.isArray(r) || r.length !== 2) {
41
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>{
42
+ if (!Array.isArray(e) || e.length !== 2) {
36
43
  return false;
37
44
  }
38
- const e = r[1];
39
- return typeof e !== 'undefined';
45
+ const r = e[1];
46
+ return typeof r !== 'undefined';
40
47
  }),
41
48
  throw: ()=>{
42
49
  throw new Error(`'use' property must be an array of tuples of length 2 with [identifier, instance | factory].`);
43
50
  },
44
- transform: (r)=>r
51
+ transform: (e)=>e
45
52
  },
46
53
  engage: {
47
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
54
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>Array.isArray(e) && e.length >= 1 && e.length <= 3),
48
55
  throw: ()=>{
49
56
  throw new Error(`'engage' property must be an array of tuples of length 1, 2 or 3.`);
50
57
  },
51
- transform: (r)=>r
58
+ transform: (e)=>e
52
59
  },
53
60
  tags: {
54
- test: (r)=>typeof r === 'undefined' || typeof r === 'string' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
61
+ test: (e)=>typeof e === 'undefined' || typeof e === 'string' || Array.isArray(e) && e.every((e)=>typeof e === 'string'),
55
62
  throw: ()=>{
56
63
  throw new Error(`'tags' property must be a string or an array of strings.`);
57
64
  },
58
- transform: (r)=>typeof r === 'string' ? [
59
- r
60
- ] : r
65
+ transform: (e)=>typeof e === 'string' ? [
66
+ e
67
+ ] : e
61
68
  },
62
69
  metadata: {
63
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
70
+ test: (e)=>(typeof e === 'object' || typeof e === 'undefined') && !Array.isArray(e),
64
71
  throw: ()=>{
65
72
  throw new Error(`'metadata' property must be of type 'object' or 'undefined'.`);
66
73
  },
67
- transform: (r)=>r
74
+ transform: (e)=>e
68
75
  },
69
76
  global: {
70
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
77
+ test: (e)=>(typeof e === 'object' || typeof e === 'undefined') && !Array.isArray(e),
71
78
  throw: ()=>{
72
79
  throw new Error(`'global' property must be of type 'object' or 'undefined'.`);
73
80
  },
74
- transform: (r)=>r
81
+ transform: (e)=>e
75
82
  }
76
83
  };
77
- const validateDefinition = (r)=>{
78
- const e = {
79
- ...r
84
+ const validateDefinition = (e)=>{
85
+ const r = {
86
+ ...e
80
87
  };
81
- for(const r in e){
82
- if (!Object.keys(n).includes(r)) {
83
- throw new Error(`Property '${r}' is not a valid assemblage definition property.`);
88
+ for(const e in r){
89
+ if (!Object.keys(o).includes(e)) {
90
+ throw new Error(`Property '${e}' is not a valid assemblage definition property.`);
84
91
  }
85
92
  }
86
- for(const r in n){
87
- const t = n[r].test;
88
- const o = n[r].throw;
89
- const s = n[r].transform;
90
- if (!t(e[r])) {
91
- o();
93
+ if (r.inject !== undefined && r.provide === undefined) {
94
+ console.warn(`⚠️ Deprecation Warning: The 'inject' option is deprecated and will be removed in a future version. Please use 'provide' instead.`);
95
+ }
96
+ if (r.inject !== undefined && r.provide !== undefined) {
97
+ console.warn(`⚠️ Warning: Both 'inject' and 'provide' options found. Using 'provide' (inject is deprecated).`);
98
+ }
99
+ for(const e in o){
100
+ const t = o[e].test;
101
+ const n = o[e].throw;
102
+ const i = o[e].transform;
103
+ if (!t(r[e])) {
104
+ n();
92
105
  }
93
- e[r] = s(e[r]);
106
+ r[e] = i(r[e]);
94
107
  }
95
- return e;
108
+ return r;
96
109
  };
97
- const getDefinition = (e)=>{
98
- if (!helpers.isAssemblage(e)) {
99
- throw new Error(`Class '${e.name}' is not an assemblage or transversal.`);
110
+ const getDefinition = (r)=>{
111
+ if (!helpers.isAssemblage(r)) {
112
+ throw new Error(`Class '${r.name}' is not an assemblage or transversal.`);
100
113
  }
101
- return reflection.getOwnCustomMetadata(constants.ReflectValue.AssemblageDefinition, e);
114
+ return reflection.getOwnCustomMetadata(constants.ReflectValue.AssemblageDefinition, r);
102
115
  };
103
- const setDefinitionValue = (t, o, n)=>{
104
- const s = getDefinition(n);
105
- s[t] = o;
106
- const a = validateDefinition(s);
107
- reflection.defineCustomMetadata(constants.ReflectValue.AssemblageDefinition, a, n);
108
- return a;
116
+ const setDefinitionValue = (t, n, o)=>{
117
+ const i = getDefinition(o);
118
+ i[t] = n;
119
+ const s = validateDefinition(i);
120
+ reflection.defineCustomMetadata(constants.ReflectValue.AssemblageDefinition, s, o);
121
+ return s;
109
122
  };
110
123
 
111
124
  exports.getDefinition = getDefinition;
package/dist/index31.mjs CHANGED
@@ -2,106 +2,119 @@ import { ReflectValue } from './index29.mjs';
2
2
  import { getOwnCustomMetadata, defineCustomMetadata } from './index30.mjs';
3
3
  import { isAssemblage } from './index3.mjs';
4
4
 
5
- const n = {
5
+ const o = {
6
6
  singleton: {
7
- test: (r)=>typeof r === 'boolean' || typeof r === 'undefined',
7
+ test: (e)=>typeof e === 'boolean' || typeof e === 'undefined',
8
8
  throw: ()=>{
9
9
  throw new Error(`'singleton' property must be of type 'boolean' or 'undefined'.`);
10
10
  },
11
- transform: (r)=>{
12
- return typeof r === 'undefined' ? true : r ? true : false;
11
+ transform: (e)=>{
12
+ return typeof e === 'undefined' ? true : e ? true : false;
13
13
  }
14
14
  },
15
15
  events: {
16
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
16
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>typeof e === 'string'),
17
17
  throw: ()=>{
18
18
  throw new Error(`'events' property must be an array of strings or 'undefined'.`);
19
19
  },
20
- transform: (r)=>r
20
+ transform: (e)=>e
21
21
  },
22
22
  inject: {
23
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
23
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>Array.isArray(e) && e.length >= 1 && e.length <= 3),
24
24
  throw: ()=>{
25
25
  throw new Error(`'inject' property must be an array of tuples of length 1, 2 or 3.`);
26
26
  },
27
- transform: (r)=>r
27
+ transform: (e)=>e
28
+ },
29
+ provide: {
30
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>Array.isArray(e) && e.length >= 1 && e.length <= 3),
31
+ throw: ()=>{
32
+ throw new Error(`'provide' property must be an array of tuples of length 1, 2 or 3.`);
33
+ },
34
+ transform: (e)=>e
28
35
  },
29
36
  use: {
30
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>{
31
- if (!Array.isArray(r) || r.length !== 2) {
37
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>{
38
+ if (!Array.isArray(e) || e.length !== 2) {
32
39
  return false;
33
40
  }
34
- const e = r[1];
35
- return typeof e !== 'undefined';
41
+ const r = e[1];
42
+ return typeof r !== 'undefined';
36
43
  }),
37
44
  throw: ()=>{
38
45
  throw new Error(`'use' property must be an array of tuples of length 2 with [identifier, instance | factory].`);
39
46
  },
40
- transform: (r)=>r
47
+ transform: (e)=>e
41
48
  },
42
49
  engage: {
43
- test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
50
+ test: (e)=>typeof e === 'undefined' || Array.isArray(e) && e.every((e)=>Array.isArray(e) && e.length >= 1 && e.length <= 3),
44
51
  throw: ()=>{
45
52
  throw new Error(`'engage' property must be an array of tuples of length 1, 2 or 3.`);
46
53
  },
47
- transform: (r)=>r
54
+ transform: (e)=>e
48
55
  },
49
56
  tags: {
50
- test: (r)=>typeof r === 'undefined' || typeof r === 'string' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
57
+ test: (e)=>typeof e === 'undefined' || typeof e === 'string' || Array.isArray(e) && e.every((e)=>typeof e === 'string'),
51
58
  throw: ()=>{
52
59
  throw new Error(`'tags' property must be a string or an array of strings.`);
53
60
  },
54
- transform: (r)=>typeof r === 'string' ? [
55
- r
56
- ] : r
61
+ transform: (e)=>typeof e === 'string' ? [
62
+ e
63
+ ] : e
57
64
  },
58
65
  metadata: {
59
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
66
+ test: (e)=>(typeof e === 'object' || typeof e === 'undefined') && !Array.isArray(e),
60
67
  throw: ()=>{
61
68
  throw new Error(`'metadata' property must be of type 'object' or 'undefined'.`);
62
69
  },
63
- transform: (r)=>r
70
+ transform: (e)=>e
64
71
  },
65
72
  global: {
66
- test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
73
+ test: (e)=>(typeof e === 'object' || typeof e === 'undefined') && !Array.isArray(e),
67
74
  throw: ()=>{
68
75
  throw new Error(`'global' property must be of type 'object' or 'undefined'.`);
69
76
  },
70
- transform: (r)=>r
77
+ transform: (e)=>e
71
78
  }
72
79
  };
73
- const validateDefinition = (r)=>{
74
- const e = {
75
- ...r
80
+ const validateDefinition = (e)=>{
81
+ const r = {
82
+ ...e
76
83
  };
77
- for(const r in e){
78
- if (!Object.keys(n).includes(r)) {
79
- throw new Error(`Property '${r}' is not a valid assemblage definition property.`);
84
+ for(const e in r){
85
+ if (!Object.keys(o).includes(e)) {
86
+ throw new Error(`Property '${e}' is not a valid assemblage definition property.`);
80
87
  }
81
88
  }
82
- for(const r in n){
83
- const t = n[r].test;
84
- const o = n[r].throw;
85
- const s = n[r].transform;
86
- if (!t(e[r])) {
87
- o();
89
+ if (r.inject !== undefined && r.provide === undefined) {
90
+ console.warn(`⚠️ Deprecation Warning: The 'inject' option is deprecated and will be removed in a future version. Please use 'provide' instead.`);
91
+ }
92
+ if (r.inject !== undefined && r.provide !== undefined) {
93
+ console.warn(`⚠️ Warning: Both 'inject' and 'provide' options found. Using 'provide' (inject is deprecated).`);
94
+ }
95
+ for(const e in o){
96
+ const t = o[e].test;
97
+ const n = o[e].throw;
98
+ const i = o[e].transform;
99
+ if (!t(r[e])) {
100
+ n();
88
101
  }
89
- e[r] = s(e[r]);
102
+ r[e] = i(r[e]);
90
103
  }
91
- return e;
104
+ return r;
92
105
  };
93
- const getDefinition = (e)=>{
94
- if (!isAssemblage(e)) {
95
- throw new Error(`Class '${e.name}' is not an assemblage or transversal.`);
106
+ const getDefinition = (r)=>{
107
+ if (!isAssemblage(r)) {
108
+ throw new Error(`Class '${r.name}' is not an assemblage or transversal.`);
96
109
  }
97
- return getOwnCustomMetadata(ReflectValue.AssemblageDefinition, e);
110
+ return getOwnCustomMetadata(ReflectValue.AssemblageDefinition, r);
98
111
  };
99
- const setDefinitionValue = (t, o, n)=>{
100
- const s = getDefinition(n);
101
- s[t] = o;
102
- const a = validateDefinition(s);
103
- defineCustomMetadata(ReflectValue.AssemblageDefinition, a, n);
104
- return a;
112
+ const setDefinitionValue = (t, n, o)=>{
113
+ const i = getDefinition(o);
114
+ i[t] = n;
115
+ const s = validateDefinition(i);
116
+ defineCustomMetadata(ReflectValue.AssemblageDefinition, s, o);
117
+ return s;
105
118
  };
106
119
 
107
120
  export { getDefinition, setDefinitionValue, validateDefinition };
package/dist/index32.js CHANGED
@@ -2,163 +2,45 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const hookManager = require('./index34.js');
6
- const resolutionStrategies = require('./index44.js');
7
- const debugLogger = require('./index37.js');
8
- const core = require('@assemblerjs/core');
9
- const use = require('./index43.js');
10
- const inject = require('./index42.js');
11
- const injectable = require('./index45.js');
5
+ const eventManager = require('./index6.js');
12
6
 
13
- function formatIdentifier(e) {
14
- if (e === undefined) return 'undefined';
15
- if (e === null) return 'null';
16
- if (typeof e === 'function') {
17
- if (e.name) return e.name;
18
- if (e.constructor?.name && e.constructor.name !== 'Function') {
19
- return e.constructor.name;
20
- }
21
- return 'AnonymousFunction';
22
- }
23
- if (typeof e === 'string') return e;
24
- if (typeof e === 'symbol') return e.toString();
25
- if (typeof e === 'number') return String(e);
26
- if (typeof e === 'boolean') return String(e);
27
- if (typeof e === 'object') {
28
- if (e.name && typeof e.name === 'string') {
29
- return e.name;
30
- }
31
- const t = e.constructor?.name;
32
- if (t && t !== 'Object') {
33
- return t;
34
- }
35
- try {
36
- const t = JSON.stringify(e);
37
- if (t.length > 100) {
38
- return t.substring(0, 100) + '...';
39
- }
40
- return t;
41
- } catch {
42
- return '[UnknownObject]';
43
- }
44
- }
45
- return String(e);
46
- }
47
- function c(e) {
48
- if (core.isClass(e)) {
49
- const t = e.prototype && Object.getOwnPropertyNames(e.prototype).length > 1;
50
- return t ? 'class' : 'class';
51
- }
52
- if (typeof e === 'function') return 'function';
53
- if (typeof e === 'string') return 'string';
54
- if (typeof e === 'symbol') return 'symbol';
55
- if (typeof e === 'object' && e !== null) return 'object';
56
- return 'unknown';
57
- }
58
- class InjectableManager {
59
- setContexts(e, t) {
60
- this.privateContext = e;
61
- this.publicContext = t;
62
- }
63
- register(i, o = false) {
64
- const a = debugLogger.DebugLogger.getInstance();
65
- const c = o === true ? use.resolveInstanceInjectionTuple(i) : inject.resolveInjectionTuple(i);
66
- if (this.has(c.identifier)) {
67
- const e = `An assemblage is already registered with identifier '${c.identifier.name}'.`;
68
- a.log('error', 'Duplicate registration', {
69
- identifier: c.identifier.name,
70
- error: e
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);
15
+ }
16
+ for (const e of t.events){
17
+ n.on(e, (...n)=>{
18
+ t.privateContext.emit(e, ...n);
71
19
  });
72
- throw new Error(e);
73
- }
74
- const f = injectable.Injectable.of(c, this.privateContext, this.publicContext);
75
- a.logRegistration(f);
76
- this.injectables.set(f.identifier, f);
77
- if (f.concrete) {
78
- hookManager.HookManager.callHook(f.concrete, 'onRegister', this.publicContext, f.configuration);
79
- }
80
- return f;
81
- }
82
- has(e) {
83
- return this.injectables.has(e);
84
- }
85
- require(e, t, n) {
86
- if (!this.injectables.has(e)) {
87
- const r = this.resolvingStack.has(e);
88
- const i = r ? 'Circular dependency detected' : 'Dependency not registered';
89
- const o = formatIdentifier(e);
90
- const a = c(e);
91
- const f = t?.__paramIndex;
92
- const u = t?.__paramCount;
93
- const l = t?.__expectedType;
94
- const g = r ? `Circular dependency detected: '${o}' is already being resolved.` : `Dependency '${o}' has not been registered (Class/Service not found in current assemblages).`;
95
- const d = {
96
- identifier: o,
97
- caller: n ? formatIdentifier(n) : 'unknown',
98
- type: a,
99
- error: g
100
- };
101
- if (f !== undefined) {
102
- d.paramIndex = f;
103
- }
104
- if (u !== undefined) {
105
- d.paramCount = u;
106
- }
107
- if (l !== undefined) {
108
- const e = l?.name || formatIdentifier(l);
109
- d.expectedType = e;
110
- }
111
- debugLogger.DebugLogger.getInstance().log('error', i, d);
112
- throw new Error(g);
113
20
  }
114
- const r = this.injectables.get(e);
115
- this.resolvingStack.add(r.identifier);
116
- try {
117
- if (r.isSingleton) {
118
- return this.singletonStrategy.resolve(r, t);
119
- } else {
120
- return this.transientStrategy.resolve(r, t);
121
- }
122
- } finally{
123
- this.resolvingStack.delete(r.identifier);
124
- }
125
- }
126
- concrete(e) {
127
- const t = this.injectables.get(e);
128
- if (t) return t.concrete;
129
- return;
130
- }
131
- tagged(...e) {
132
- const t = [];
133
- for (const n of e){
134
- for (const [e, r] of this.injectables){
135
- if (r.tags.includes(n)) t.push(r.build());
21
+ } else {
22
+ for (const e of t.events){
23
+ if (!t.privateContext.events.has(e)) t.privateContext.addChannels(e);
24
+ }
25
+ }
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);
136
40
  }
137
41
  }
138
- return t;
139
- }
140
- dispose() {
141
- for (const [e, t] of this.injectables){
142
- t.dispose();
143
- }
144
- this.resolvingStack.clear();
145
- }
146
- get size() {
147
- return this.injectables.size;
148
- }
149
- getRegisteredIdentifiers() {
150
- return Array.from(this.injectables.keys()).map((e)=>e?.name || String(e));
151
- }
152
- getInjectables() {
153
- return this.injectables;
154
- }
155
- constructor(){
156
- this.injectables = new Map();
157
- this.resolvingStack = new Set();
158
- this.singletonStrategy = new resolutionStrategies.SingletonStrategy();
159
- this.transientStrategy = new resolutionStrategies.TransientStrategy();
160
42
  }
161
- }
43
+ };
162
44
 
163
- exports.InjectableManager = InjectableManager;
164
- exports.formatIdentifier = formatIdentifier;
45
+ exports.registerEvents = registerEvents;
46
+ exports.unregisterEvents = unregisterEvents;