@rolster/invertly 1.1.1 → 1.3.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.
Files changed (48) hide show
  1. package/dist/cjs/index.js +241 -243
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.js +241 -243
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/esm/decorators/index.d.ts +2 -2
  6. package/dist/esm/decorators/index.js +2 -2
  7. package/dist/esm/decorators/inject.decorator.d.ts +4 -4
  8. package/dist/esm/decorators/inject.decorator.js +15 -16
  9. package/dist/esm/decorators/inject.decorator.js.map +1 -1
  10. package/dist/esm/decorators/injectable.decorator.d.ts +6 -6
  11. package/dist/esm/decorators/injectable.decorator.js +10 -10
  12. package/dist/esm/factories/container.factory.d.ts +8 -9
  13. package/dist/esm/factories/container.factory.js +105 -111
  14. package/dist/esm/factories/container.factory.js.map +1 -1
  15. package/dist/esm/factories/index.d.ts +21 -21
  16. package/dist/esm/factories/index.js +32 -34
  17. package/dist/esm/factories/index.js.map +1 -1
  18. package/dist/esm/index.d.ts +6 -6
  19. package/dist/esm/index.js +5 -5
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/stores/context.store.d.ts +7 -7
  22. package/dist/esm/stores/context.store.js +14 -14
  23. package/dist/esm/stores/index.d.ts +5 -5
  24. package/dist/esm/stores/index.js +5 -5
  25. package/dist/esm/stores/inject.store.d.ts +7 -6
  26. package/dist/esm/stores/inject.store.js +13 -19
  27. package/dist/esm/stores/inject.store.js.map +1 -1
  28. package/dist/esm/stores/injectable.store.d.ts +8 -8
  29. package/dist/esm/stores/injectable.store.js +11 -11
  30. package/dist/esm/stores/locator.store.d.ts +7 -7
  31. package/dist/esm/stores/locator.store.js +31 -32
  32. package/dist/esm/stores/locator.store.js.map +1 -1
  33. package/dist/esm/stores/scope.store.d.ts +6 -7
  34. package/dist/esm/stores/scope.store.js +11 -11
  35. package/dist/esm/stores/scope.store.js.map +1 -1
  36. package/dist/esm/types/constructable.type.d.ts +1 -1
  37. package/dist/esm/types/constructable.type.js +1 -1
  38. package/dist/esm/types/context.type.d.ts +5 -5
  39. package/dist/esm/types/context.type.js +1 -1
  40. package/dist/esm/types/index.d.ts +5 -5
  41. package/dist/esm/types/index.js +5 -5
  42. package/dist/esm/types/inject.type.d.ts +9 -9
  43. package/dist/esm/types/inject.type.js +1 -1
  44. package/dist/esm/types/injectable.type.d.ts +12 -12
  45. package/dist/esm/types/injectable.type.js +1 -1
  46. package/dist/esm/types/locator.type.d.ts +8 -8
  47. package/dist/esm/types/locator.type.js +1 -1
  48. package/package.json +5 -4
package/dist/es/index.js CHANGED
@@ -1,264 +1,262 @@
1
1
  import 'reflect-metadata';
2
2
 
3
- class Context {
4
- constructor() {
5
- this.store = new Map();
6
- }
7
- set(key, value) {
8
- this.store.set(key, value);
9
- }
10
- request(key) {
11
- return this.store.get(key);
12
- }
13
- has(key) {
14
- return this.store.has(key);
15
- }
3
+ class Context {
4
+ constructor() {
5
+ this.store = new Map();
6
+ }
7
+ set(key, value) {
8
+ this.store.set(key, value);
9
+ }
10
+ request(key) {
11
+ return this.store.get(key);
12
+ }
13
+ has(key) {
14
+ return this.store.has(key);
15
+ }
16
16
  }
17
17
 
18
- class InjectStore {
19
- constructor() {
20
- this.collection = new Map();
21
- }
22
- push(options) {
23
- const { parent, index } = options;
24
- const injects = this.request(parent);
25
- injects[index] = options;
26
- }
27
- request(token) {
28
- const current = this.collection.get(token);
29
- if (current) {
30
- return current;
31
- }
32
- const injects = [];
33
- this.collection.set(token, injects);
34
- return injects;
35
- }
18
+ class SecureMap extends Map {
19
+ constructor(initialValue) {
20
+ super();
21
+ this.initialValue = initialValue;
22
+ }
23
+ request(key, initialValue) {
24
+ let value = this.get(key);
25
+ if (!value) {
26
+ value = initialValue ?? this.initialValue();
27
+ this.set(key, value);
28
+ }
29
+ return value;
30
+ }
36
31
  }
37
32
 
38
- class InjectableStore {
39
- constructor() {
40
- this.collection = new Map();
41
- }
42
- push(options) {
43
- this.collection.set(options.token, options);
44
- }
45
- request(token) {
46
- return this.collection.get(token);
47
- }
33
+ class InjectStore {
34
+ constructor() {
35
+ this.collection = new SecureMap(() => []);
36
+ }
37
+ push(options) {
38
+ const injects = this.collection.request(options.parent);
39
+ injects[options.index] = options;
40
+ }
41
+ request(token) {
42
+ return this.collection.request(token);
43
+ }
48
44
  }
49
45
 
50
- class LocatorStore {
51
- constructor() {
52
- this.collection = new Map();
53
- }
54
- save(dependencies) {
55
- dependencies.forEach((config) => {
56
- this.collection.set(config.token, config);
57
- });
58
- }
59
- push(reference, token) {
60
- if (typeof reference !== 'string' && typeof reference !== 'symbol') {
61
- const { token, useClass } = reference;
62
- this.collection.set(token, { token, useClass });
63
- }
64
- else if (token) {
65
- this.collection.set(reference, { token, useClass: token });
66
- }
67
- }
68
- request(token) {
69
- return this.collection.get(token);
70
- }
71
- }
72
- const locatorStore = new LocatorStore();
73
- function saveInLocator(dependencies) {
74
- locatorStore.save(dependencies);
75
- }
76
- function pushInLocator(reference, token) {
77
- locatorStore.push(reference, token);
78
- }
79
- function requestInLocator(token) {
80
- return locatorStore.request(token);
46
+ class InjectableStore {
47
+ constructor() {
48
+ this.collection = new Map();
49
+ }
50
+ push(options) {
51
+ this.collection.set(options.token, options);
52
+ }
53
+ request(token) {
54
+ return this.collection.get(token);
55
+ }
81
56
  }
82
57
 
83
- class ScopeStore {
84
- constructor() {
85
- this.collection = new Map();
86
- }
87
- push(token, value) {
88
- this.collection.set(token, value);
89
- }
90
- request(token) {
91
- return this.collection.get(token);
92
- }
58
+ class LocatorStore {
59
+ constructor() {
60
+ this.collection = new Map();
61
+ }
62
+ save(options) {
63
+ options.forEach((option) => {
64
+ this.collection.set(option.token, option);
65
+ });
66
+ }
67
+ push(reference, token) {
68
+ if (typeof reference !== 'string' && typeof reference !== 'symbol') {
69
+ this.collection.set(reference.token, reference);
70
+ }
71
+ else if (token) {
72
+ this.collection.set(reference, { token, useClass: token });
73
+ }
74
+ }
75
+ request(token) {
76
+ return this.collection.get(token);
77
+ }
78
+ }
79
+ const LOCATOR_STORE = new LocatorStore();
80
+ function saveInLocator(dependencies) {
81
+ LOCATOR_STORE.save(dependencies);
82
+ }
83
+ function pushInLocator(reference, token) {
84
+ LOCATOR_STORE.push(reference, token);
85
+ }
86
+ function requestInLocator(token) {
87
+ return LOCATOR_STORE.request(token);
93
88
  }
94
89
 
95
- class Warehouse {
96
- constructor() {
97
- this.scope = new ScopeStore();
98
- this.injectables = new InjectableStore();
99
- this.injects = new InjectStore();
100
- }
101
- }
102
- class Dependency {
103
- constructor({ warehouse, context }) {
104
- this.warehouse = warehouse;
105
- this.context = context;
106
- this.scope = new ScopeStore();
107
- }
108
- build(injectable) {
109
- const config = this.warehouse.injectables.request(injectable);
110
- if (!config) {
111
- throw Error(`Class ${injectable.toString()} is not found in the collection`);
112
- }
113
- const { scopeable, singleton, token } = config;
114
- return this.createInstance({ token, scopeable, singleton });
115
- }
116
- createObject(token) {
117
- const Constructor = token;
118
- const tokens = this.reflectTokens(Constructor);
119
- const params = tokens
120
- ? this.createReflectArgs({ token, tokens })
121
- : this.createTokenArgs(token);
122
- return new Constructor(...params);
123
- }
124
- reflectTokens(reference) {
125
- return Reflect.getMetadata('design:paramtypes', reference);
126
- }
127
- createFromScope({ token, scope }) {
128
- const instance = scope.request(token);
129
- if (instance) {
130
- return instance;
131
- }
132
- const object = this.createObject(token);
133
- scope.push(token, object);
134
- return object;
135
- }
136
- createFromContainer(token) {
137
- const { warehouse: { scope } } = this;
138
- return this.createFromScope({ token, scope });
139
- }
140
- createInstance(props) {
141
- const { token, scopeable, singleton } = props;
142
- const { scope } = this;
143
- if (singleton) {
144
- return this.createFromContainer(token);
145
- }
146
- if (scopeable) {
147
- return this.createFromScope({ token, scope });
148
- }
149
- return this.createObject(token);
150
- }
151
- createFromDecorator(inject) {
152
- const { token, scopeable, singleton } = inject;
153
- const locator = requestInLocator(token);
154
- if (locator) {
155
- const { useClass: token } = locator;
156
- return this.createInstance({ token, scopeable, singleton });
157
- }
158
- return this.createInstance({ token, scopeable, singleton });
159
- }
160
- createReflectArgs({ tokens, token }) {
161
- const { warehouse, context } = this;
162
- const injects = warehouse.injects.request(token);
163
- return tokens.map((token, index) => {
164
- const inject = injects[index];
165
- if (inject) {
166
- return this.createFromDecorator(inject);
167
- }
168
- const locator = requestInLocator(token);
169
- if (locator) {
170
- const { useClass: token, scopeable, singleton } = locator;
171
- return this.createInstance({ token, scopeable, singleton });
172
- }
173
- if (token === Context) {
174
- return context;
175
- }
176
- return this.createObject(token);
177
- });
178
- }
179
- createTokenArgs(token) {
180
- const injects = this.warehouse.injects.request(token);
181
- return injects.reduce((objects, { index, scopeable, singleton, token }) => {
182
- objects[index] = this.createInstance({ token, scopeable, singleton });
183
- return objects;
184
- }, []);
185
- }
186
- }
187
- class Container {
188
- constructor() {
189
- this.warehouse = new Warehouse();
190
- }
191
- registerInjectable(options) {
192
- this.warehouse.injectables.push(options);
193
- }
194
- registerInject(options) {
195
- this.warehouse.injects.push(options);
196
- }
197
- createInjectable(options) {
198
- const { token, context } = options;
199
- const { warehouse } = this;
200
- const dependency = new Dependency({ warehouse, context });
201
- return dependency.build(token);
202
- }
90
+ class ScopeStore {
91
+ constructor() {
92
+ this.collection = new Map();
93
+ }
94
+ push(token, value) {
95
+ this.collection.set(token, value);
96
+ }
97
+ request(token) {
98
+ return this.collection.get(token);
99
+ }
100
+ }
101
+
102
+ class DataCenter {
103
+ constructor() {
104
+ this.scope = new ScopeStore();
105
+ this.injectables = new InjectableStore();
106
+ this.injects = new InjectStore();
107
+ }
108
+ }
109
+ class InjectableFactory {
110
+ constructor(dataCenter, context) {
111
+ this.dataCenter = dataCenter;
112
+ this.context = context;
113
+ this.scope = new ScopeStore();
114
+ }
115
+ build(injectable) {
116
+ const options = this.dataCenter.injectables.request(injectable);
117
+ if (!options) {
118
+ throw Error(`Class ${injectable.toString()} is not found in the collection`);
119
+ }
120
+ return this.createInstance(options);
121
+ }
122
+ createObject(token) {
123
+ const Constructor = token;
124
+ const tokens = this.reflectTokens(Constructor);
125
+ const params = tokens
126
+ ? this.createReflectArgs({ token, tokens })
127
+ : this.createTokenArgs(token);
128
+ return new Constructor(...params);
129
+ }
130
+ reflectTokens(constructable) {
131
+ return Reflect.getMetadata('design:paramtypes', constructable);
132
+ }
133
+ createFromScope({ token, scope }) {
134
+ let instance = scope.request(token);
135
+ if (!instance) {
136
+ instance = this.createObject(token);
137
+ scope.push(token, instance);
138
+ }
139
+ return instance;
140
+ }
141
+ createFromContainer(token) {
142
+ return this.createFromScope({ token, scope: this.dataCenter.scope });
143
+ }
144
+ createInstance(options) {
145
+ const { token, scopeable, singleton } = options;
146
+ if (singleton) {
147
+ return this.createFromContainer(token);
148
+ }
149
+ if (scopeable) {
150
+ return this.createFromScope({ token, scope: this.scope });
151
+ }
152
+ return this.createObject(token);
153
+ }
154
+ createFromDecorator(inject) {
155
+ const { token, scopeable, singleton } = inject;
156
+ const locator = requestInLocator(token);
157
+ return this.createInstance({
158
+ token: locator?.useClass ?? token,
159
+ scopeable,
160
+ singleton
161
+ });
162
+ }
163
+ createReflectArgs({ tokens, token }) {
164
+ const injects = this.dataCenter.injects.request(token);
165
+ return tokens.map((token, index) => {
166
+ const inject = injects[index];
167
+ if (inject) {
168
+ return this.createFromDecorator(inject);
169
+ }
170
+ const locator = requestInLocator(token);
171
+ if (locator) {
172
+ return this.createInstance({
173
+ ...locator,
174
+ token: locator.useClass
175
+ });
176
+ }
177
+ if (token === Context) {
178
+ return this.context;
179
+ }
180
+ return this.createObject(token);
181
+ });
182
+ }
183
+ createTokenArgs(token) {
184
+ const injects = this.dataCenter.injects.request(token);
185
+ return injects.reduce((objects, options) => {
186
+ objects[options.index] = this.createInstance({ ...options });
187
+ return objects;
188
+ }, []);
189
+ }
190
+ }
191
+ class InvertlyContainer {
192
+ constructor() {
193
+ this.dataCenter = new DataCenter();
194
+ }
195
+ registerInjectable(options) {
196
+ this.dataCenter.injectables.push(options);
197
+ }
198
+ registerInject(options) {
199
+ this.dataCenter.injects.push(options);
200
+ }
201
+ createInjectable(options) {
202
+ return new InjectableFactory(this.dataCenter, options.context).build(options.token);
203
+ }
203
204
  }
204
205
 
205
- const invertlyContainer = new Container();
206
- function createFromInvertly(options, container) {
207
- return (container || invertlyContainer).createInjectable(options);
208
- }
209
- function invertly(token, container) {
210
- return createFromInvertly({ token }, container);
211
- }
212
- function registerInjectable(options, container) {
213
- (container || invertlyContainer).registerInjectable(options);
214
- }
215
- function registerInject(options, container) {
216
- (container || invertlyContainer).registerInject(options);
217
- }
218
- function registerDependency(token, options) {
219
- const { container, injects, scopeable, singleton } = options;
220
- registerInjectable({
221
- token,
222
- scopeable: scopeable || false,
223
- singleton: singleton || false
224
- }, container);
225
- injects?.forEach((inject, indexParent) => {
226
- const { index, scopeable: childrenScopeable, singleton: childrenSingleton, token: childrenToken } = inject;
227
- registerInject({
228
- index: index || indexParent,
229
- parent: token,
230
- scopeable: childrenScopeable || scopeable || false,
231
- singleton: childrenSingleton || singleton || false,
232
- token: childrenToken
233
- }, container);
234
- });
206
+ const INVERTLY_CONTAINER = new InvertlyContainer();
207
+ function createFromInvertly(options, container) {
208
+ return (container ?? INVERTLY_CONTAINER).createInjectable(options);
209
+ }
210
+ function invertly(token, container) {
211
+ return createFromInvertly({ token }, container);
212
+ }
213
+ function registerInjectable(options, container) {
214
+ (container ?? INVERTLY_CONTAINER).registerInjectable(options);
215
+ }
216
+ function registerInject(options, container) {
217
+ (container ?? INVERTLY_CONTAINER).registerInject(options);
218
+ }
219
+ function registerDependency(token, options) {
220
+ registerInjectable({
221
+ token,
222
+ scopeable: options.scopeable ?? false,
223
+ singleton: options.singleton ?? false
224
+ }, options.container);
225
+ options.injects?.forEach((inject, indexParent) => {
226
+ registerInject({
227
+ index: inject.index ?? indexParent,
228
+ parent: token,
229
+ scopeable: inject.scopeable ?? options.scopeable ?? false,
230
+ singleton: inject.singleton ?? options.singleton ?? false,
231
+ token: inject.token
232
+ }, options.container);
233
+ });
235
234
  }
236
235
 
237
- function createInject(inject) {
238
- const { scopeable, singleton, token } = inject;
239
- return (parent, _, index) => {
240
- registerInject({ index, parent, scopeable, singleton, token });
241
- };
242
- }
243
- function Singleton(token) {
244
- return createInject({ token, scopeable: false, singleton: true });
245
- }
246
- function Scope(token) {
247
- return createInject({ token, scopeable: true, singleton: false });
248
- }
249
- function Factory(token) {
250
- return createInject({ token, scopeable: false, singleton: false });
236
+ function createInject(inject) {
237
+ return (parent, _, index) => {
238
+ registerInject({ ...inject, index, parent });
239
+ };
240
+ }
241
+ function Singleton(token) {
242
+ return createInject({ token, scopeable: false, singleton: true });
243
+ }
244
+ function Scope(token) {
245
+ return createInject({ token, scopeable: true, singleton: false });
246
+ }
247
+ function Factory(token) {
248
+ return createInject({ token, scopeable: false, singleton: false });
251
249
  }
252
250
 
253
- function Injectable(options) {
254
- return (token) => {
255
- registerInjectable({
256
- scopeable: !!options?.scopeable,
257
- singleton: !!options?.singleton,
258
- token
259
- });
260
- };
251
+ function Injectable(options) {
252
+ return (token) => {
253
+ registerInjectable({
254
+ scopeable: !!options?.scopeable,
255
+ singleton: !!options?.singleton,
256
+ token
257
+ });
258
+ };
261
259
  }
262
260
 
263
- export { Container, Context, Factory, Injectable, Scope, Singleton, createFromInvertly as default, invertly, pushInLocator, registerDependency, registerInject, registerInjectable, requestInLocator, saveInLocator };
261
+ export { InvertlyContainer as Container, Context, Factory, Injectable, Scope, Singleton, createFromInvertly as default, invertly, pushInLocator, registerDependency, registerInject, registerInjectable, requestInLocator, saveInLocator };
264
262
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../esm/stores/context.store.js","../esm/stores/inject.store.js","../esm/stores/injectable.store.js","../esm/stores/locator.store.js","../esm/stores/scope.store.js","../esm/factories/container.factory.js","../esm/factories/index.js","../esm/decorators/inject.decorator.js","../esm/decorators/injectable.decorator.js"],"sourcesContent":["export class Context {\r\n constructor() {\r\n this.store = new Map();\r\n }\r\n set(key, value) {\r\n this.store.set(key, value);\r\n }\r\n request(key) {\r\n return this.store.get(key);\r\n }\r\n has(key) {\r\n return this.store.has(key);\r\n }\r\n}\r\n//# sourceMappingURL=context.store.js.map","export class InjectStore {\r\n constructor() {\r\n this.collection = new Map();\r\n }\r\n push(options) {\r\n const { parent, index } = options;\r\n const injects = this.request(parent);\r\n injects[index] = options;\r\n }\r\n request(token) {\r\n const current = this.collection.get(token);\r\n if (current) {\r\n return current;\r\n }\r\n const injects = [];\r\n this.collection.set(token, injects);\r\n return injects;\r\n }\r\n}\r\n//# sourceMappingURL=inject.store.js.map","export class InjectableStore {\r\n constructor() {\r\n this.collection = new Map();\r\n }\r\n push(options) {\r\n this.collection.set(options.token, options);\r\n }\r\n request(token) {\r\n return this.collection.get(token);\r\n }\r\n}\r\n//# sourceMappingURL=injectable.store.js.map","class LocatorStore {\r\n constructor() {\r\n this.collection = new Map();\r\n }\r\n save(dependencies) {\r\n dependencies.forEach((config) => {\r\n this.collection.set(config.token, config);\r\n });\r\n }\r\n push(reference, token) {\r\n if (typeof reference !== 'string' && typeof reference !== 'symbol') {\r\n const { token, useClass } = reference;\r\n this.collection.set(token, { token, useClass });\r\n }\r\n else if (token) {\r\n this.collection.set(reference, { token, useClass: token });\r\n }\r\n }\r\n request(token) {\r\n return this.collection.get(token);\r\n }\r\n}\r\nconst locatorStore = new LocatorStore();\r\nexport function saveInLocator(dependencies) {\r\n locatorStore.save(dependencies);\r\n}\r\nexport function pushInLocator(reference, token) {\r\n locatorStore.push(reference, token);\r\n}\r\nexport function requestInLocator(token) {\r\n return locatorStore.request(token);\r\n}\r\n//# sourceMappingURL=locator.store.js.map","export class ScopeStore {\r\n constructor() {\r\n this.collection = new Map();\r\n }\r\n push(token, value) {\r\n this.collection.set(token, value);\r\n }\r\n request(token) {\r\n return this.collection.get(token);\r\n }\r\n}\r\n//# sourceMappingURL=scope.store.js.map","import 'reflect-metadata';\r\nimport { Context, InjectStore, InjectableStore, ScopeStore, requestInLocator } from '../stores';\r\nclass Warehouse {\r\n constructor() {\r\n this.scope = new ScopeStore();\r\n this.injectables = new InjectableStore();\r\n this.injects = new InjectStore();\r\n }\r\n}\r\nclass Dependency {\r\n constructor({ warehouse, context }) {\r\n this.warehouse = warehouse;\r\n this.context = context;\r\n this.scope = new ScopeStore();\r\n }\r\n build(injectable) {\r\n const config = this.warehouse.injectables.request(injectable);\r\n if (!config) {\r\n throw Error(`Class ${injectable.toString()} is not found in the collection`);\r\n }\r\n const { scopeable, singleton, token } = config;\r\n return this.createInstance({ token, scopeable, singleton });\r\n }\r\n createObject(token) {\r\n const Constructor = token;\r\n const tokens = this.reflectTokens(Constructor);\r\n const params = tokens\r\n ? this.createReflectArgs({ token, tokens })\r\n : this.createTokenArgs(token);\r\n return new Constructor(...params);\r\n }\r\n reflectTokens(reference) {\r\n return Reflect.getMetadata('design:paramtypes', reference);\r\n }\r\n createFromScope({ token, scope }) {\r\n const instance = scope.request(token);\r\n if (instance) {\r\n return instance;\r\n }\r\n const object = this.createObject(token);\r\n scope.push(token, object);\r\n return object;\r\n }\r\n createFromContainer(token) {\r\n const { warehouse: { scope } } = this;\r\n return this.createFromScope({ token, scope });\r\n }\r\n createInstance(props) {\r\n const { token, scopeable, singleton } = props;\r\n const { scope } = this;\r\n if (singleton) {\r\n return this.createFromContainer(token);\r\n }\r\n if (scopeable) {\r\n return this.createFromScope({ token, scope });\r\n }\r\n return this.createObject(token);\r\n }\r\n createFromDecorator(inject) {\r\n const { token, scopeable, singleton } = inject;\r\n const locator = requestInLocator(token);\r\n if (locator) {\r\n const { useClass: token } = locator;\r\n return this.createInstance({ token, scopeable, singleton });\r\n }\r\n return this.createInstance({ token, scopeable, singleton });\r\n }\r\n createReflectArgs({ tokens, token }) {\r\n const { warehouse, context } = this;\r\n const injects = warehouse.injects.request(token);\r\n return tokens.map((token, index) => {\r\n const inject = injects[index];\r\n if (inject) {\r\n return this.createFromDecorator(inject);\r\n }\r\n const locator = requestInLocator(token);\r\n if (locator) {\r\n const { useClass: token, scopeable, singleton } = locator;\r\n return this.createInstance({ token, scopeable, singleton });\r\n }\r\n if (token === Context) {\r\n return context;\r\n }\r\n return this.createObject(token);\r\n });\r\n }\r\n createTokenArgs(token) {\r\n const injects = this.warehouse.injects.request(token);\r\n return injects.reduce((objects, { index, scopeable, singleton, token }) => {\r\n objects[index] = this.createInstance({ token, scopeable, singleton });\r\n return objects;\r\n }, []);\r\n }\r\n}\r\nexport class Container {\r\n constructor() {\r\n this.warehouse = new Warehouse();\r\n }\r\n registerInjectable(options) {\r\n this.warehouse.injectables.push(options);\r\n }\r\n registerInject(options) {\r\n this.warehouse.injects.push(options);\r\n }\r\n createInjectable(options) {\r\n const { token, context } = options;\r\n const { warehouse } = this;\r\n const dependency = new Dependency({ warehouse, context });\r\n return dependency.build(token);\r\n }\r\n}\r\n//# sourceMappingURL=container.factory.js.map","import { Container } from './container.factory';\r\nconst invertlyContainer = new Container();\r\nfunction createFromInvertly(options, container) {\r\n return (container || invertlyContainer).createInjectable(options);\r\n}\r\nexport function invertly(token, container) {\r\n return createFromInvertly({ token }, container);\r\n}\r\nexport function registerInjectable(options, container) {\r\n (container || invertlyContainer).registerInjectable(options);\r\n}\r\nexport function registerInject(options, container) {\r\n (container || invertlyContainer).registerInject(options);\r\n}\r\nexport function registerDependency(token, options) {\r\n const { container, injects, scopeable, singleton } = options;\r\n registerInjectable({\r\n token,\r\n scopeable: scopeable || false,\r\n singleton: singleton || false\r\n }, container);\r\n injects?.forEach((inject, indexParent) => {\r\n const { index, scopeable: childrenScopeable, singleton: childrenSingleton, token: childrenToken } = inject;\r\n registerInject({\r\n index: index || indexParent,\r\n parent: token,\r\n scopeable: childrenScopeable || scopeable || false,\r\n singleton: childrenSingleton || singleton || false,\r\n token: childrenToken\r\n }, container);\r\n });\r\n}\r\nexport { Container } from './container.factory';\r\nexport default createFromInvertly;\r\n//# sourceMappingURL=index.js.map","import { registerInject } from '../factories';\r\nfunction createInject(inject) {\r\n const { scopeable, singleton, token } = inject;\r\n return (parent, _, index) => {\r\n registerInject({ index, parent, scopeable, singleton, token });\r\n };\r\n}\r\nexport function Singleton(token) {\r\n return createInject({ token, scopeable: false, singleton: true });\r\n}\r\nexport function Scope(token) {\r\n return createInject({ token, scopeable: true, singleton: false });\r\n}\r\nexport function Factory(token) {\r\n return createInject({ token, scopeable: false, singleton: false });\r\n}\r\n//# sourceMappingURL=inject.decorator.js.map","import { registerInjectable } from '../factories';\r\nexport function Injectable(options) {\r\n return (token) => {\r\n registerInjectable({\r\n scopeable: !!options?.scopeable,\r\n singleton: !!options?.singleton,\r\n token\r\n });\r\n };\r\n}\r\n//# sourceMappingURL=injectable.decorator.js.map"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../esm/stores/context.store.js","../../node_modules/@rolster/commons/dist/esm/collections.js","../esm/stores/inject.store.js","../esm/stores/injectable.store.js","../esm/stores/locator.store.js","../esm/stores/scope.store.js","../esm/factories/container.factory.js","../esm/factories/index.js","../esm/decorators/inject.decorator.js","../esm/decorators/injectable.decorator.js"],"sourcesContent":["export class Context {\n constructor() {\n this.store = new Map();\n }\n set(key, value) {\n this.store.set(key, value);\n }\n request(key) {\n return this.store.get(key);\n }\n has(key) {\n return this.store.has(key);\n }\n}\n//# sourceMappingURL=context.store.js.map","export class SecureMap extends Map {\n constructor(initialValue) {\n super();\n this.initialValue = initialValue;\n }\n request(key, initialValue) {\n let value = this.get(key);\n if (!value) {\n value = initialValue ?? this.initialValue();\n this.set(key, value);\n }\n return value;\n }\n}\n//# sourceMappingURL=collections.js.map","import { SecureMap } from '@rolster/commons';\nexport class InjectStore {\n constructor() {\n this.collection = new SecureMap(() => []);\n }\n push(options) {\n const injects = this.collection.request(options.parent);\n injects[options.index] = options;\n }\n request(token) {\n return this.collection.request(token);\n }\n}\n//# sourceMappingURL=inject.store.js.map","export class InjectableStore {\n constructor() {\n this.collection = new Map();\n }\n push(options) {\n this.collection.set(options.token, options);\n }\n request(token) {\n return this.collection.get(token);\n }\n}\n//# sourceMappingURL=injectable.store.js.map","class LocatorStore {\n constructor() {\n this.collection = new Map();\n }\n save(options) {\n options.forEach((option) => {\n this.collection.set(option.token, option);\n });\n }\n push(reference, token) {\n if (typeof reference !== 'string' && typeof reference !== 'symbol') {\n this.collection.set(reference.token, reference);\n }\n else if (token) {\n this.collection.set(reference, { token, useClass: token });\n }\n }\n request(token) {\n return this.collection.get(token);\n }\n}\nconst LOCATOR_STORE = new LocatorStore();\nexport function saveInLocator(dependencies) {\n LOCATOR_STORE.save(dependencies);\n}\nexport function pushInLocator(reference, token) {\n LOCATOR_STORE.push(reference, token);\n}\nexport function requestInLocator(token) {\n return LOCATOR_STORE.request(token);\n}\n//# sourceMappingURL=locator.store.js.map","export class ScopeStore {\n constructor() {\n this.collection = new Map();\n }\n push(token, value) {\n this.collection.set(token, value);\n }\n request(token) {\n return this.collection.get(token);\n }\n}\n//# sourceMappingURL=scope.store.js.map","import 'reflect-metadata';\nimport { Context, InjectStore, InjectableStore, ScopeStore, requestInLocator } from '../stores';\nclass DataCenter {\n constructor() {\n this.scope = new ScopeStore();\n this.injectables = new InjectableStore();\n this.injects = new InjectStore();\n }\n}\nclass InjectableFactory {\n constructor(dataCenter, context) {\n this.dataCenter = dataCenter;\n this.context = context;\n this.scope = new ScopeStore();\n }\n build(injectable) {\n const options = this.dataCenter.injectables.request(injectable);\n if (!options) {\n throw Error(`Class ${injectable.toString()} is not found in the collection`);\n }\n return this.createInstance(options);\n }\n createObject(token) {\n const Constructor = token;\n const tokens = this.reflectTokens(Constructor);\n const params = tokens\n ? this.createReflectArgs({ token, tokens })\n : this.createTokenArgs(token);\n return new Constructor(...params);\n }\n reflectTokens(constructable) {\n return Reflect.getMetadata('design:paramtypes', constructable);\n }\n createFromScope({ token, scope }) {\n let instance = scope.request(token);\n if (!instance) {\n instance = this.createObject(token);\n scope.push(token, instance);\n }\n return instance;\n }\n createFromContainer(token) {\n return this.createFromScope({ token, scope: this.dataCenter.scope });\n }\n createInstance(options) {\n const { token, scopeable, singleton } = options;\n if (singleton) {\n return this.createFromContainer(token);\n }\n if (scopeable) {\n return this.createFromScope({ token, scope: this.scope });\n }\n return this.createObject(token);\n }\n createFromDecorator(inject) {\n const { token, scopeable, singleton } = inject;\n const locator = requestInLocator(token);\n return this.createInstance({\n token: locator?.useClass ?? token,\n scopeable,\n singleton\n });\n }\n createReflectArgs({ tokens, token }) {\n const injects = this.dataCenter.injects.request(token);\n return tokens.map((token, index) => {\n const inject = injects[index];\n if (inject) {\n return this.createFromDecorator(inject);\n }\n const locator = requestInLocator(token);\n if (locator) {\n return this.createInstance({\n ...locator,\n token: locator.useClass\n });\n }\n if (token === Context) {\n return this.context;\n }\n return this.createObject(token);\n });\n }\n createTokenArgs(token) {\n const injects = this.dataCenter.injects.request(token);\n return injects.reduce((objects, options) => {\n objects[options.index] = this.createInstance({ ...options });\n return objects;\n }, []);\n }\n}\nexport class InvertlyContainer {\n constructor() {\n this.dataCenter = new DataCenter();\n }\n registerInjectable(options) {\n this.dataCenter.injectables.push(options);\n }\n registerInject(options) {\n this.dataCenter.injects.push(options);\n }\n createInjectable(options) {\n return new InjectableFactory(this.dataCenter, options.context).build(options.token);\n }\n}\n//# sourceMappingURL=container.factory.js.map","import { InvertlyContainer } from './container.factory';\nconst INVERTLY_CONTAINER = new InvertlyContainer();\nfunction createFromInvertly(options, container) {\n return (container ?? INVERTLY_CONTAINER).createInjectable(options);\n}\nexport function invertly(token, container) {\n return createFromInvertly({ token }, container);\n}\nexport function registerInjectable(options, container) {\n (container ?? INVERTLY_CONTAINER).registerInjectable(options);\n}\nexport function registerInject(options, container) {\n (container ?? INVERTLY_CONTAINER).registerInject(options);\n}\nexport function registerDependency(token, options) {\n registerInjectable({\n token,\n scopeable: options.scopeable ?? false,\n singleton: options.singleton ?? false\n }, options.container);\n options.injects?.forEach((inject, indexParent) => {\n registerInject({\n index: inject.index ?? indexParent,\n parent: token,\n scopeable: inject.scopeable ?? options.scopeable ?? false,\n singleton: inject.singleton ?? options.singleton ?? false,\n token: inject.token\n }, options.container);\n });\n}\nexport { InvertlyContainer } from './container.factory';\nexport default createFromInvertly;\n//# sourceMappingURL=index.js.map","import { registerInject } from '../factories';\nfunction createInject(inject) {\n return (parent, _, index) => {\n registerInject({ ...inject, index, parent });\n };\n}\nexport function Singleton(token) {\n return createInject({ token, scopeable: false, singleton: true });\n}\nexport function Scope(token) {\n return createInject({ token, scopeable: true, singleton: false });\n}\nexport function Factory(token) {\n return createInject({ token, scopeable: false, singleton: false });\n}\n//# sourceMappingURL=inject.decorator.js.map","import { registerInjectable } from '../factories';\nexport function Injectable(options) {\n return (token) => {\n registerInjectable({\n scopeable: !!options?.scopeable,\n singleton: !!options?.singleton,\n token\n });\n };\n}\n//# sourceMappingURL=injectable.decorator.js.map"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export * from './inject.decorator';
2
- export * from './injectable.decorator';
1
+ export * from './inject.decorator';
2
+ export * from './injectable.decorator';
@@ -1,3 +1,3 @@
1
- export * from './inject.decorator';
2
- export * from './injectable.decorator';
1
+ export * from './inject.decorator';
2
+ export * from './injectable.decorator';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { InjectToken } from '../types';
2
- export declare function Singleton(token: InjectToken): ParameterDecorator;
3
- export declare function Scope(token: InjectToken): ParameterDecorator;
4
- export declare function Factory(token: InjectToken): ParameterDecorator;
1
+ import { InjectToken } from '../types';
2
+ export declare function Singleton(token: InjectToken): ParameterDecorator;
3
+ export declare function Scope(token: InjectToken): ParameterDecorator;
4
+ export declare function Factory(token: InjectToken): ParameterDecorator;