@rolster/invertly 1.3.1 → 2.0.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 (39) hide show
  1. package/dist/cjs/index.js +8 -19
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.js +7 -18
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/esm/decorators/inject.decorator.d.ts +1 -1
  6. package/dist/esm/decorators/inject.decorator.js +1 -1
  7. package/dist/esm/decorators/inject.decorator.js.map +1 -1
  8. package/dist/esm/decorators/injectable.decorator.js +1 -1
  9. package/dist/esm/decorators/injectable.decorator.js.map +1 -1
  10. package/dist/esm/factories/container.factory.d.ts +2 -1
  11. package/dist/esm/factories/container.factory.js +5 -1
  12. package/dist/esm/factories/container.factory.js.map +1 -1
  13. package/dist/esm/factories/{index.d.ts → invertly.factory.d.ts} +2 -1
  14. package/dist/esm/factories/{index.js → invertly.factory.js} +1 -1
  15. package/dist/esm/factories/invertly.factory.js.map +1 -0
  16. package/dist/esm/index.d.ts +10 -5
  17. package/dist/esm/index.js +6 -4
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/stores/context.store.d.ts +5 -4
  20. package/dist/esm/stores/context.store.js +6 -3
  21. package/dist/esm/stores/context.store.js.map +1 -1
  22. package/dist/esm/stores/inject.store.d.ts +2 -1
  23. package/dist/esm/stores/inject.store.js.map +1 -1
  24. package/dist/esm/stores/injectable.store.d.ts +1 -1
  25. package/dist/esm/stores/locator.store.d.ts +3 -1
  26. package/dist/esm/stores/locator.store.js.map +1 -1
  27. package/dist/esm/stores/scope.store.d.ts +1 -1
  28. package/dist/esm/types/context.type.d.ts +4 -3
  29. package/package.json +3 -5
  30. package/dist/esm/decorators/index.d.ts +0 -2
  31. package/dist/esm/decorators/index.js +0 -3
  32. package/dist/esm/decorators/index.js.map +0 -1
  33. package/dist/esm/factories/index.js.map +0 -1
  34. package/dist/esm/stores/index.d.ts +0 -5
  35. package/dist/esm/stores/index.js +0 -6
  36. package/dist/esm/stores/index.js.map +0 -1
  37. package/dist/esm/types/index.d.ts +0 -5
  38. package/dist/esm/types/index.js +0 -6
  39. package/dist/esm/types/index.js.map +0 -1
package/dist/cjs/index.js CHANGED
@@ -3,40 +3,29 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('reflect-metadata');
6
+ var commons = require('@rolster/commons');
6
7
 
7
8
  class Context {
8
9
  constructor() {
9
10
  this.store = new Map();
10
11
  }
11
- set(key, value) {
12
+ save(key, value) {
12
13
  this.store.set(key, value);
13
14
  }
14
- request(key) {
15
+ findOrNull(key) {
15
16
  return this.store.get(key);
16
17
  }
17
- has(key) {
18
- return this.store.has(key);
18
+ find(key) {
19
+ return this.store.get(key);
19
20
  }
20
- }
21
-
22
- class SecureMap extends Map {
23
- constructor(initialValue) {
24
- super();
25
- this.initialValue = initialValue;
26
- }
27
- request(key, initialValue) {
28
- let value = this.get(key);
29
- if (!value) {
30
- value = initialValue ?? this.initialValue();
31
- this.set(key, value);
32
- }
33
- return value;
21
+ contain(key) {
22
+ return this.store.has(key);
34
23
  }
35
24
  }
36
25
 
37
26
  class InjectStore {
38
27
  constructor() {
39
- this.collection = new SecureMap(() => []);
28
+ this.collection = new commons.SecureMap(() => []);
40
29
  }
41
30
  push(options) {
42
31
  const injects = this.collection.request(options.parent);
@@ -1 +1 @@
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
+ {"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/invertly.factory.js","../esm/decorators/inject.decorator.js","../esm/decorators/injectable.decorator.js"],"sourcesContent":["export class Context {\n constructor() {\n this.store = new Map();\n }\n save(key, value) {\n this.store.set(key, value);\n }\n findOrNull(key) {\n return this.store.get(key);\n }\n find(key) {\n return this.store.get(key);\n }\n contain(key) {\n return this.store.has(key);\n }\n}\n//# sourceMappingURL=context.store.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 } from '../stores/context.store';\nimport { InjectStore } from '../stores/inject.store';\nimport { InjectableStore } from '../stores/injectable.store';\nimport { requestInLocator } from '../stores/locator.store';\nimport { ScopeStore } from '../stores/scope.store';\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=invertly.factory.js.map","import { registerInject } from '../factories/invertly.factory';\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/invertly.factory';\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":["SecureMap"],"mappings":"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"}
package/dist/es/index.js CHANGED
@@ -1,32 +1,21 @@
1
1
  import 'reflect-metadata';
2
+ import { SecureMap } from '@rolster/commons';
2
3
 
3
4
  class Context {
4
5
  constructor() {
5
6
  this.store = new Map();
6
7
  }
7
- set(key, value) {
8
+ save(key, value) {
8
9
  this.store.set(key, value);
9
10
  }
10
- request(key) {
11
+ findOrNull(key) {
11
12
  return this.store.get(key);
12
13
  }
13
- has(key) {
14
- return this.store.has(key);
14
+ find(key) {
15
+ return this.store.get(key);
15
16
  }
16
- }
17
-
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;
17
+ contain(key) {
18
+ return this.store.has(key);
30
19
  }
31
20
  }
32
21
 
@@ -1 +1 @@
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
+ {"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/invertly.factory.js","../esm/decorators/inject.decorator.js","../esm/decorators/injectable.decorator.js"],"sourcesContent":["export class Context {\n constructor() {\n this.store = new Map();\n }\n save(key, value) {\n this.store.set(key, value);\n }\n findOrNull(key) {\n return this.store.get(key);\n }\n find(key) {\n return this.store.get(key);\n }\n contain(key) {\n return this.store.has(key);\n }\n}\n//# sourceMappingURL=context.store.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 } from '../stores/context.store';\nimport { InjectStore } from '../stores/inject.store';\nimport { InjectableStore } from '../stores/injectable.store';\nimport { requestInLocator } from '../stores/locator.store';\nimport { ScopeStore } from '../stores/scope.store';\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=invertly.factory.js.map","import { registerInject } from '../factories/invertly.factory';\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/invertly.factory';\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":";;;AAAO,MAAM,OAAO,CAAC;AACrB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE;AACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,UAAU,CAAC,GAAG,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,KAAK;AACL;;ACfO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChE,QAAQ,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AACzC,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL;;ACZO,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL;;ACVA,MAAM,YAAY,CAAC;AACnB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACpC,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;AAC3B,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AAC5E,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC5D,SAAS;AACT,aAAa,IAAI,KAAK,EAAE;AACxB,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL,CAAC;AACD,MAAM,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,SAAS,aAAa,CAAC,YAAY,EAAE;AAC5C,IAAI,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AACM,SAAS,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE;AAChD,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AACM,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACxC,IAAI,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxC;;AC9BO,MAAM,UAAU,CAAC;AACxB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL;;ACJA,MAAM,UAAU,CAAC;AACjB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AACtC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;AACjD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AACzC,KAAK;AACL,CAAC;AACD,MAAM,iBAAiB,CAAC;AACxB,IAAI,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE;AACrC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AACtC,KAAK;AACL,IAAI,KAAK,CAAC,UAAU,EAAE;AACtB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACxE,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC;AAClC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACvD,QAAQ,MAAM,MAAM,GAAG,MAAM;AAC7B,cAAc,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACvD,cAAc,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAQ,OAAO,IAAI,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,aAAa,CAAC,aAAa,EAAE;AACjC,QAAQ,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;AACtC,QAAQ,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAChD,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACxC,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,mBAAmB,CAAC,KAAK,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,QAAQ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;AACxD,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,mBAAmB,CAAC,MAAM,EAAE;AAChC,QAAQ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AACvD,QAAQ,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChD,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC;AACnC,YAAY,KAAK,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK;AAC7C,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;AACzC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/D,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC5C,YAAY,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACxD,aAAa;AACb,YAAY,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACpD,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC;AAC3C,oBAAoB,GAAG,OAAO;AAC9B,oBAAoB,KAAK,EAAE,OAAO,CAAC,QAAQ;AAC3C,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,IAAI,KAAK,KAAK,OAAO,EAAE;AACnC,gBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC;AACpC,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/D,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK;AACpD,YAAY,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACzE,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS,EAAE,EAAE,CAAC,CAAC;AACf,KAAK;AACL,CAAC;AACM,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAC3C,KAAK;AACL,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5F,KAAK;AACL;;AC3GA,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACnD,SAAS,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE;AAChD,IAAI,OAAO,CAAC,SAAS,IAAI,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACvE,CAAC;AACM,SAAS,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE;AAC3C,IAAI,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AACM,SAAS,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE;AACvD,IAAI,CAAC,SAAS,IAAI,kBAAkB,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAClE,CAAC;AACM,SAAS,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE;AACnD,IAAI,CAAC,SAAS,IAAI,kBAAkB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE;AACnD,IAAI,kBAAkB,CAAC;AACvB,QAAQ,KAAK;AACb,QAAQ,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;AAC7C,QAAQ,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;AAC7C,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1B,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK;AACtD,QAAQ,cAAc,CAAC;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,WAAW;AAC9C,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK;AACrE,YAAY,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK;AACrE,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK;AAC/B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9B,KAAK,CAAC,CAAC;AACP;;AC5BA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,KAAK;AACjC,QAAQ,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACrD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,IAAI,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AACM,SAAS,KAAK,CAAC,KAAK,EAAE;AAC7B,IAAI,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACtE,CAAC;AACM,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,IAAI,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE;;ACbO,SAAS,UAAU,CAAC,OAAO,EAAE;AACpC,IAAI,OAAO,CAAC,KAAK,KAAK;AACtB,QAAQ,kBAAkB,CAAC;AAC3B,YAAY,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS;AAC3C,YAAY,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS;AAC3C,YAAY,KAAK;AACjB,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN;;;;"}
@@ -1,4 +1,4 @@
1
- import { InjectToken } from '../types';
1
+ import { InjectToken } from '../types/inject.type';
2
2
  export declare function Singleton(token: InjectToken): ParameterDecorator;
3
3
  export declare function Scope(token: InjectToken): ParameterDecorator;
4
4
  export declare function Factory(token: InjectToken): ParameterDecorator;
@@ -1,4 +1,4 @@
1
- import { registerInject } from '../factories';
1
+ import { registerInject } from '../factories/invertly.factory';
2
2
  function createInject(inject) {
3
3
  return (parent, _, index) => {
4
4
  registerInject({ ...inject, index, parent });
@@ -1 +1 @@
1
- {"version":3,"file":"inject.decorator.js","sourceRoot":"","sources":["../../../src/decorators/inject.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAS9C,SAAS,YAAY,CAAC,MAAqB;IACzC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;QAC1B,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAkB;IACtC,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAkB;IACxC,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"inject.decorator.js","sourceRoot":"","sources":["../../../src/decorators/inject.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAS/D,SAAS,YAAY,CAAC,MAAqB;IACzC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;QAC1B,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAkB;IACtC,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAkB;IACxC,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { registerInjectable } from '../factories';
1
+ import { registerInjectable } from '../factories/invertly.factory';
2
2
  export function Injectable(options) {
3
3
  return (token) => {
4
4
  registerInjectable({
@@ -1 +1 @@
1
- {"version":3,"file":"injectable.decorator.js","sourceRoot":"","sources":["../../../src/decorators/injectable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOlD,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,kBAAkB,CAAC;YACjB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS;YAC/B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS;YAC/B,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"injectable.decorator.js","sourceRoot":"","sources":["../../../src/decorators/injectable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAOnE,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,kBAAkB,CAAC;YACjB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS;YAC/B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS;YAC/B,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import 'reflect-metadata';
2
- import { InjectOptions, InjectableOptions, InjectionOptions } from '../types';
2
+ import { InjectableOptions, InjectionOptions } from '../types/injectable.type';
3
+ import { InjectOptions } from '../types/inject.type';
3
4
  export declare class InvertlyContainer {
4
5
  private readonly dataCenter;
5
6
  registerInjectable(options: InjectableOptions): void;
@@ -1,5 +1,9 @@
1
1
  import 'reflect-metadata';
2
- import { Context, InjectStore, InjectableStore, ScopeStore, requestInLocator } from '../stores';
2
+ import { Context } from '../stores/context.store';
3
+ import { InjectStore } from '../stores/inject.store';
4
+ import { InjectableStore } from '../stores/injectable.store';
5
+ import { requestInLocator } from '../stores/locator.store';
6
+ import { ScopeStore } from '../stores/scope.store';
3
7
  class DataCenter {
4
8
  constructor() {
5
9
  this.scope = new ScopeStore();
@@ -1 +1 @@
1
- {"version":3,"file":"container.factory.js","sourceRoot":"","sources":["../../../src/factories/container.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.factory.js","sourceRoot":"","sources":["../../../src/factories/container.factory.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { InjectOptions, InjectToken, InjectableOptions, InjectableToken, InjectionOptions } from '../types';
1
+ import { InjectOptions, InjectToken } from '../types/inject.type';
2
+ import { InjectableOptions, InjectableToken, InjectionOptions } from '../types/injectable.type';
2
3
  import { InvertlyContainer } from './container.factory';
3
4
  interface Inject<T = any> {
4
5
  token: InjectToken<T>;
@@ -30,4 +30,4 @@ export function registerDependency(token, options) {
30
30
  }
31
31
  export { InvertlyContainer } from './container.factory';
32
32
  export default createFromInvertly;
33
- //# sourceMappingURL=index.js.map
33
+ //# sourceMappingURL=invertly.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invertly.factory.js","sourceRoot":"","sources":["../../../src/factories/invertly.factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAgBnD,SAAS,kBAAkB,CACzB,OAA4B,EAC5B,SAA6B;IAE7B,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAyB,EACzB,SAA6B;IAE7B,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,SAA6B;IAE7B,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,SAA6B;IAE7B,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAyB,EACzB,OAA0B;IAE1B,kBAAkB,CAChB;QACE,KAAK;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACrC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;KACtC,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;IAEF,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC/C,cAAc,CACZ;YACE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,WAAW;YAClC,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK;YACzD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK;YACzD,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAe,kBAAkB,CAAC"}
@@ -1,6 +1,11 @@
1
- import createFromInvertly from './factories';
2
- export { Factory, Injectable, Scope, Singleton } from './decorators';
3
- export { InvertlyContainer, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
- export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
5
- export { Constructable, InjectableToken, InjectToken, LocatorOptions } from './types';
1
+ import createFromInvertly from './factories/invertly.factory';
2
+ export { Factory, Scope, Singleton } from './decorators/inject.decorator';
3
+ export { Injectable } from './decorators/injectable.decorator';
4
+ export { InvertlyContainer, invertly, registerDependency, registerInject, registerInjectable } from './factories/invertly.factory';
5
+ export { Context } from './stores/context.store';
6
+ export { requestInLocator, pushInLocator, saveInLocator } from './stores/locator.store';
7
+ export { Constructable } from './types/constructable.type';
8
+ export { InjectToken } from './types/inject.type';
9
+ export { InjectableToken } from './types/injectable.type';
10
+ export { LocatorOptions } from './types/locator.type';
6
11
  export default createFromInvertly;
package/dist/esm/index.js CHANGED
@@ -1,6 +1,8 @@
1
- import createFromInvertly from './factories';
2
- export { Factory, Injectable, Scope, Singleton } from './decorators';
3
- export { InvertlyContainer, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
- export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
1
+ import createFromInvertly from './factories/invertly.factory';
2
+ export { Factory, Scope, Singleton } from './decorators/inject.decorator';
3
+ export { Injectable } from './decorators/injectable.decorator';
4
+ export { InvertlyContainer, invertly, registerDependency, registerInject, registerInjectable } from './factories/invertly.factory';
5
+ export { Context } from './stores/context.store';
6
+ export { requestInLocator, pushInLocator, saveInLocator } from './stores/locator.store';
5
7
  export default createFromInvertly;
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,UAAU,CAAC;AAQlB,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,wBAAwB,CAAC;AAMhC,eAAe,kBAAkB,CAAC"}
@@ -1,7 +1,8 @@
1
- import { AbstractContext } from '../types';
1
+ import { AbstractContext } from '../types/context.type';
2
2
  export declare class Context<K = string> implements AbstractContext<K> {
3
3
  private store;
4
- set(key: K, value?: any): void;
5
- request<T = any>(key: K): Undefined<T>;
6
- has(key: K): boolean;
4
+ save(key: K, value?: any): void;
5
+ findOrNull<T = any>(key: K): Undefined<T>;
6
+ find<T = any>(key: K): T;
7
+ contain(key: K): boolean;
7
8
  }
@@ -2,13 +2,16 @@ export class Context {
2
2
  constructor() {
3
3
  this.store = new Map();
4
4
  }
5
- set(key, value) {
5
+ save(key, value) {
6
6
  this.store.set(key, value);
7
7
  }
8
- request(key) {
8
+ findOrNull(key) {
9
9
  return this.store.get(key);
10
10
  }
11
- has(key) {
11
+ find(key) {
12
+ return this.store.get(key);
13
+ }
14
+ contain(key) {
12
15
  return this.store.has(key);
13
16
  }
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.store.js","sourceRoot":"","sources":["../../../src/stores/context.store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,OAAO;IAApB;QACU,UAAK,GAAgB,IAAI,GAAG,EAAE,CAAC;IAazC,CAAC;IAXQ,GAAG,CAAC,GAAM,EAAE,KAAW;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,OAAO,CAAU,GAAM;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAC,GAAM;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"context.store.js","sourceRoot":"","sources":["../../../src/stores/context.store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,OAAO;IAApB;QACU,UAAK,GAAgB,IAAI,GAAG,EAAE,CAAC;IAiBzC,CAAC;IAfQ,IAAI,CAAC,GAAM,EAAE,KAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,UAAU,CAAU,GAAM;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI,CAAU,GAAM;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,OAAO,CAAC,GAAM;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
- import { InjectableToken, InjectOptions } from '../types';
1
+ import { InjectOptions } from '../types/inject.type';
2
+ import { InjectableToken } from '../types/injectable.type';
2
3
  export declare class InjectStore {
3
4
  private collection;
4
5
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"inject.store.js","sourceRoot":"","sources":["../../../src/stores/inject.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,OAAO,WAAW;IAGtB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEM,IAAI,CAAC,OAAsB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACnC,CAAC;IAEM,OAAO,CAAC,KAAsB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"inject.store.js","sourceRoot":"","sources":["../../../src/stores/inject.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,OAAO,WAAW;IAGtB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEM,IAAI,CAAC,OAAsB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACnC,CAAC;IAEM,OAAO,CAAC,KAAsB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { InjectableOptions, InjectableToken } from '../types';
1
+ import { InjectableOptions, InjectableToken } from '../types/injectable.type';
2
2
  type Options<T> = Undefined<InjectableOptions<T>>;
3
3
  export declare class InjectableStore {
4
4
  private collection;
@@ -1,4 +1,6 @@
1
- import { InjectableToken, InjectToken, LocatorOptions } from '../types';
1
+ import { InjectToken } from '../types/inject.type';
2
+ import { InjectableToken } from '../types/injectable.type';
3
+ import { LocatorOptions } from '../types/locator.type';
2
4
  type Reference = string | symbol | LocatorOptions;
3
5
  type Options<T> = Undefined<LocatorOptions<T>>;
4
6
  export declare function saveInLocator(dependencies: LocatorOptions[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"locator.store.js","sourceRoot":"","sources":["../../../src/stores/locator.store.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY;IAAlB;QACU,eAAU,GAAqC,IAAI,GAAG,EAAE,CAAC;IAmBnE,CAAC;IAjBQ,IAAI,CAAC,OAAyB;QACnC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,SAAoB,EAAE,KAAuB;QACvD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEM,OAAO,CAAc,KAAqB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,YAA8B;IAC1D,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAoB,EACpB,KAAuB;IAEvB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAU,KAAqB;IAC7D,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"locator.store.js","sourceRoot":"","sources":["../../../src/stores/locator.store.ts"],"names":[],"mappings":"AAOA,MAAM,YAAY;IAAlB;QACU,eAAU,GAAqC,IAAI,GAAG,EAAE,CAAC;IAmBnE,CAAC;IAjBQ,IAAI,CAAC,OAAyB;QACnC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,SAAoB,EAAE,KAAuB;QACvD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEM,OAAO,CAAc,KAAqB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,YAA8B;IAC1D,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAoB,EACpB,KAAuB;IAEvB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAU,KAAqB;IAC7D,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { InjectableToken } from '../types';
1
+ import { InjectableToken } from '../types/injectable.type';
2
2
  export declare class ScopeStore {
3
3
  private readonly collection;
4
4
  push(token: InjectableToken, value: any): void;
@@ -1,5 +1,6 @@
1
1
  export interface AbstractContext<K = string> {
2
- set(key: K, value?: any): void;
3
- request<T = any>(key: K): Undefined<T>;
4
- has(key: K): boolean;
2
+ save(key: K, value?: any): void;
3
+ findOrNull<T = any>(key: K): Undefined<T>;
4
+ find<T = any>(key: K): T;
5
+ contain(key: K): boolean;
5
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolster/invertly",
3
- "version": "1.3.1",
3
+ "version": "2.0.0",
4
4
  "description": "Invertly is a package that allows you to implement class mapping to identify and inject their dependencies.",
5
5
  "module": "dist/esm/index.js",
6
6
  "main": "dist/cjs/index.js",
@@ -26,20 +26,18 @@
26
26
  "prepublishOnly": "npm run build"
27
27
  },
28
28
  "dependencies": {
29
- "@rolster/commons": "^2.1.0",
29
+ "@rolster/commons": "^2.3.20",
30
30
  "reflect-metadata": "^0.2.2"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@rollup/plugin-commonjs": "^25.0.4",
34
34
  "@rollup/plugin-node-resolve": "^15.2.1",
35
35
  "@rollup/plugin-typescript": "^11.1.3",
36
+ "@rolster/rollup": "^1.0.8",
36
37
  "@rolster/types": "^1.1.0",
37
- "@types/jest": "^29.5.1",
38
- "jest": "^29.5.0",
39
38
  "prettier": "^3.0.3",
40
39
  "rimraf": "^3.0.2",
41
40
  "rollup": "^2.32.0",
42
- "ts-jest": "^29.1.0",
43
41
  "tslib": "^2.4.0",
44
42
  "typescript": "^5.7.2"
45
43
  },
@@ -1,2 +0,0 @@
1
- export * from './inject.decorator';
2
- export * from './injectable.decorator';
@@ -1,3 +0,0 @@
1
- export * from './inject.decorator';
2
- export * from './injectable.decorator';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAgBnD,SAAS,kBAAkB,CACzB,OAA4B,EAC5B,SAA6B;IAE7B,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAyB,EACzB,SAA6B;IAE7B,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,SAA6B;IAE7B,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,SAA6B;IAE7B,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAyB,EACzB,OAA0B;IAE1B,kBAAkB,CAChB;QACE,KAAK;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACrC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;KACtC,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;IAEF,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC/C,cAAc,CACZ;YACE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,WAAW;YAClC,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK;YACzD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK;YACzD,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAe,kBAAkB,CAAC"}
@@ -1,5 +0,0 @@
1
- export * from './context.store';
2
- export * from './inject.store';
3
- export * from './injectable.store';
4
- export * from './locator.store';
5
- export * from './scope.store';
@@ -1,6 +0,0 @@
1
- export * from './context.store';
2
- export * from './inject.store';
3
- export * from './injectable.store';
4
- export * from './locator.store';
5
- export * from './scope.store';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stores/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
@@ -1,5 +0,0 @@
1
- export * from './constructable.type';
2
- export * from './context.type';
3
- export * from './inject.type';
4
- export * from './injectable.type';
5
- export * from './locator.type';
@@ -1,6 +0,0 @@
1
- export * from './constructable.type';
2
- export * from './context.type';
3
- export * from './inject.type';
4
- export * from './injectable.type';
5
- export * from './locator.type';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}