@rolster/invertly 1.0.9 → 1.1.1

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 +78 -81
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.js +78 -81
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/esm/decorators/inject.decorator.d.ts +3 -3
  6. package/dist/esm/decorators/inject.decorator.js +10 -11
  7. package/dist/esm/decorators/inject.decorator.js.map +1 -1
  8. package/dist/esm/decorators/injectable.decorator.d.ts +5 -5
  9. package/dist/esm/decorators/injectable.decorator.js +7 -9
  10. package/dist/esm/decorators/injectable.decorator.js.map +1 -1
  11. package/dist/esm/factories/container.factory.d.ts +4 -4
  12. package/dist/esm/factories/container.factory.js +13 -13
  13. package/dist/esm/factories/container.factory.js.map +1 -1
  14. package/dist/esm/factories/index.d.ts +8 -23
  15. package/dist/esm/factories/index.js +25 -34
  16. package/dist/esm/factories/index.js.map +1 -1
  17. package/dist/esm/index.d.ts +2 -2
  18. package/dist/esm/index.js +1 -1
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/stores/context.store.d.ts +5 -2
  21. package/dist/esm/stores/context.store.js +11 -2
  22. package/dist/esm/stores/context.store.js.map +1 -1
  23. package/dist/esm/stores/inject.store.d.ts +3 -3
  24. package/dist/esm/stores/inject.store.js +5 -5
  25. package/dist/esm/stores/inject.store.js.map +1 -1
  26. package/dist/esm/stores/injectable.store.d.ts +4 -4
  27. package/dist/esm/stores/injectable.store.js +3 -3
  28. package/dist/esm/stores/injectable.store.js.map +1 -1
  29. package/dist/esm/stores/locator.store.d.ts +5 -5
  30. package/dist/esm/stores/locator.store.js +3 -3
  31. package/dist/esm/stores/locator.store.js.map +1 -1
  32. package/dist/esm/stores/scope.store.d.ts +2 -2
  33. package/dist/esm/stores/scope.store.js +1 -1
  34. package/dist/esm/stores/scope.store.js.map +1 -1
  35. package/dist/esm/types/context.type.d.ts +4 -2
  36. package/dist/esm/types/inject.type.d.ts +2 -2
  37. package/dist/esm/types/injectable.type.d.ts +3 -3
  38. package/dist/esm/types/locator.type.d.ts +1 -1
  39. package/package.json +1 -1
@@ -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 extends Map {\r\n request(key) {\r\n return this.has(key) ? this.get(key) : undefined;\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(config) {\r\n const { parent, index } = config;\r\n const injects = this.fetch(parent);\r\n injects[index] = config;\r\n }\r\n fetch(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(config) {\r\n this.collection.set(config.token, config);\r\n }\r\n fetch(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 fetch(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 fetchInLocator(token) {\r\n return locatorStore.fetch(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 fetch(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, fetchInLocator } 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.fetch(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.fetch(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 = fetchInLocator(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.fetch(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 = fetchInLocator(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.fetch(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(config) {\r\n this.warehouse.injectables.push(config);\r\n }\r\n registerInject(config) {\r\n this.warehouse.injects.push(config);\r\n }\r\n createInjectable(config) {\r\n const { token, context } = config;\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 rootContainer = new Container();\r\nconst createFromInvertly = (options) => {\r\n const { config, container } = options;\r\n return (container || rootContainer).createInjectable(config);\r\n};\r\nexport const invertly = (token, { container } = {}) => {\r\n return createFromInvertly({ config: { token }, container });\r\n};\r\nexport const registerInjectable = (options) => {\r\n const { config, container } = options;\r\n (container || rootContainer).registerInjectable(config);\r\n};\r\nexport const registerInject = (options) => {\r\n const { config, container } = options;\r\n (container || rootContainer).registerInject(config);\r\n};\r\nexport const registerDependency = (token, options) => {\r\n const { container, injects, scopeable, singleton } = options;\r\n registerInjectable({\r\n config: {\r\n token,\r\n scopeable: scopeable || false,\r\n singleton: singleton || false\r\n },\r\n container\r\n });\r\n injects?.forEach((inject, indexParent) => {\r\n const { index, scopeable: childrenScopeable, singleton: childrenSingleton, token: childrenToken } = inject;\r\n registerInject({\r\n config: {\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 },\r\n container\r\n });\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\nconst createInject = ({ scopeable, singleton, token }) => {\r\n return (parent, _, index) => {\r\n registerInject({\r\n config: { index, parent, scopeable, singleton, token }\r\n });\r\n };\r\n};\r\nexport const Singleton = (token) => {\r\n return createInject({ token, scopeable: false, singleton: true });\r\n};\r\nexport const Scope = (token) => {\r\n return createInject({ token, scopeable: true, singleton: false });\r\n};\r\nexport const 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\nconst DEFAULT_CONFIG = {\r\n scopeable: false,\r\n singleton: false\r\n};\r\nexport const Injectable = (config) => {\r\n const finalConfig = { ...DEFAULT_CONFIG, ...config };\r\n const { scopeable, singleton } = finalConfig;\r\n return (token) => {\r\n registerInjectable({ config: { scopeable, singleton, token } });\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","../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,4 +1,4 @@
1
1
  import { InjectToken } from '../types';
2
- export declare const Singleton: (token: InjectToken) => ParameterDecorator;
3
- export declare const Scope: (token: InjectToken) => ParameterDecorator;
4
- export declare const Factory: (token: InjectToken) => ParameterDecorator;
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,18 +1,17 @@
1
1
  import { registerInject } from '../factories';
2
- const createInject = ({ scopeable, singleton, token }) => {
2
+ function createInject(inject) {
3
+ const { scopeable, singleton, token } = inject;
3
4
  return (parent, _, index) => {
4
- registerInject({
5
- config: { index, parent, scopeable, singleton, token }
6
- });
5
+ registerInject({ index, parent, scopeable, singleton, token });
7
6
  };
8
- };
9
- export const Singleton = (token) => {
7
+ }
8
+ export function Singleton(token) {
10
9
  return createInject({ token, scopeable: false, singleton: true });
11
- };
12
- export const Scope = (token) => {
10
+ }
11
+ export function Scope(token) {
13
12
  return createInject({ token, scopeable: true, singleton: false });
14
- };
15
- export const Factory = (token) => {
13
+ }
14
+ export function Factory(token) {
16
15
  return createInject({ token, scopeable: false, singleton: false });
17
- };
16
+ }
18
17
  //# sourceMappingURL=inject.decorator.js.map
@@ -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,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,SAAS,EACT,KAAK,EACE,EAAsB,EAAE;IAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;QAC1B,cAAc,CAAC;YACb,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE;SACvD,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAkB,EAAsB,EAAE;IAClE,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAkB,EAAsB,EAAE;IAC9D,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAkB,EAAsB,EAAE;IAChE,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC"}
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,MAAc;IAClC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAE/C,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;QAC1B,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,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,6 +1,6 @@
1
- type InjectableConfig = {
2
- scopeable: boolean;
3
- singleton: boolean;
4
- };
5
- export declare const Injectable: (config?: Partial<InjectableConfig>) => ClassDecorator;
1
+ interface InjectableOptions {
2
+ scopeable?: boolean;
3
+ singleton?: boolean;
4
+ }
5
+ export declare function Injectable(options?: InjectableOptions): ClassDecorator;
6
6
  export {};
@@ -1,13 +1,11 @@
1
1
  import { registerInjectable } from '../factories';
2
- const DEFAULT_CONFIG = {
3
- scopeable: false,
4
- singleton: false
5
- };
6
- export const Injectable = (config) => {
7
- const finalConfig = { ...DEFAULT_CONFIG, ...config };
8
- const { scopeable, singleton } = finalConfig;
2
+ export function Injectable(options) {
9
3
  return (token) => {
10
- registerInjectable({ config: { scopeable, singleton, token } });
4
+ registerInjectable({
5
+ scopeable: !!options?.scopeable,
6
+ singleton: !!options?.singleton,
7
+ token
8
+ });
11
9
  };
12
- };
10
+ }
13
11
  //# sourceMappingURL=injectable.decorator.js.map
@@ -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,cAAc,GAAqB;IACvC,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,MAAkC,EAClB,EAAE;IAClB,MAAM,WAAW,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAE7C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;AACJ,CAAC,CAAC"}
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,9 +1,9 @@
1
1
  import 'reflect-metadata';
2
- import { InjectConfig, InjectableConfig, InjectionConfig } from '../types';
2
+ import { InjectOptions, InjectableOptions, InjectionOptions } from '../types';
3
3
  export declare class Container {
4
4
  private readonly warehouse;
5
5
  constructor();
6
- registerInjectable(config: InjectableConfig): void;
7
- registerInject(config: InjectConfig): void;
8
- createInjectable<T = unknown>(config: InjectionConfig<T>): T;
6
+ registerInjectable(options: InjectableOptions): void;
7
+ registerInject(options: InjectOptions): void;
8
+ createInjectable<T = any>(options: InjectionOptions<T>): T;
9
9
  }
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { Context, InjectStore, InjectableStore, ScopeStore, fetchInLocator } from '../stores';
2
+ import { Context, InjectStore, InjectableStore, ScopeStore, requestInLocator } from '../stores';
3
3
  class Warehouse {
4
4
  constructor() {
5
5
  this.scope = new ScopeStore();
@@ -14,7 +14,7 @@ class Dependency {
14
14
  this.scope = new ScopeStore();
15
15
  }
16
16
  build(injectable) {
17
- const config = this.warehouse.injectables.fetch(injectable);
17
+ const config = this.warehouse.injectables.request(injectable);
18
18
  if (!config) {
19
19
  throw Error(`Class ${injectable.toString()} is not found in the collection`);
20
20
  }
@@ -33,7 +33,7 @@ class Dependency {
33
33
  return Reflect.getMetadata('design:paramtypes', reference);
34
34
  }
35
35
  createFromScope({ token, scope }) {
36
- const instance = scope.fetch(token);
36
+ const instance = scope.request(token);
37
37
  if (instance) {
38
38
  return instance;
39
39
  }
@@ -58,7 +58,7 @@ class Dependency {
58
58
  }
59
59
  createFromDecorator(inject) {
60
60
  const { token, scopeable, singleton } = inject;
61
- const locator = fetchInLocator(token);
61
+ const locator = requestInLocator(token);
62
62
  if (locator) {
63
63
  const { useClass: token } = locator;
64
64
  return this.createInstance({ token, scopeable, singleton });
@@ -67,13 +67,13 @@ class Dependency {
67
67
  }
68
68
  createReflectArgs({ tokens, token }) {
69
69
  const { warehouse, context } = this;
70
- const injects = warehouse.injects.fetch(token);
70
+ const injects = warehouse.injects.request(token);
71
71
  return tokens.map((token, index) => {
72
72
  const inject = injects[index];
73
73
  if (inject) {
74
74
  return this.createFromDecorator(inject);
75
75
  }
76
- const locator = fetchInLocator(token);
76
+ const locator = requestInLocator(token);
77
77
  if (locator) {
78
78
  const { useClass: token, scopeable, singleton } = locator;
79
79
  return this.createInstance({ token, scopeable, singleton });
@@ -85,7 +85,7 @@ class Dependency {
85
85
  });
86
86
  }
87
87
  createTokenArgs(token) {
88
- const injects = this.warehouse.injects.fetch(token);
88
+ const injects = this.warehouse.injects.request(token);
89
89
  return injects.reduce((objects, { index, scopeable, singleton, token }) => {
90
90
  objects[index] = this.createInstance({ token, scopeable, singleton });
91
91
  return objects;
@@ -96,14 +96,14 @@ export class Container {
96
96
  constructor() {
97
97
  this.warehouse = new Warehouse();
98
98
  }
99
- registerInjectable(config) {
100
- this.warehouse.injectables.push(config);
99
+ registerInjectable(options) {
100
+ this.warehouse.injectables.push(options);
101
101
  }
102
- registerInject(config) {
103
- this.warehouse.injects.push(config);
102
+ registerInject(options) {
103
+ this.warehouse.injects.push(options);
104
104
  }
105
- createInjectable(config) {
106
- const { token, context } = config;
105
+ createInjectable(options) {
106
+ const { token, context } = options;
107
107
  const { warehouse } = this;
108
108
  const dependency = new Dependency({ warehouse, context });
109
109
  return dependency.build(token);
@@ -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,21 +1,6 @@
1
+ import { InjectOptions, InjectToken, InjectableOptions, InjectableToken, InjectionOptions } from '../types';
1
2
  import { Container } from './container.factory';
2
- import { InjectConfig, InjectToken, InjectableConfig, InjectableToken, InjectionConfig } from '../types';
3
- interface InjectionOptions<T> {
4
- config: InjectionConfig<T>;
5
- container?: Container;
6
- }
7
- interface InvertlyOptions {
8
- container?: Container;
9
- }
10
- interface InjectableOptions {
11
- config: InjectableConfig;
12
- container?: Container;
13
- }
14
- interface InjectOptions {
15
- config: InjectConfig;
16
- container?: Container;
17
- }
18
- interface DependencyConfig<T = unknown> {
3
+ interface Inject<T = any> {
19
4
  token: InjectToken<T>;
20
5
  index?: number;
21
6
  scopeable?: boolean;
@@ -23,14 +8,14 @@ interface DependencyConfig<T = unknown> {
23
8
  }
24
9
  interface DependencyOptions {
25
10
  container?: Container;
26
- injects?: DependencyConfig[];
11
+ injects?: Inject[];
27
12
  scopeable?: boolean;
28
13
  singleton?: boolean;
29
14
  }
30
- declare const createFromInvertly: <T = unknown>(options: InjectionOptions<T>) => T;
31
- export declare const invertly: <T = unknown>(token: InjectableToken<T>, { container }?: InvertlyOptions) => T;
32
- export declare const registerInjectable: (options: InjectableOptions) => void;
33
- export declare const registerInject: (options: InjectOptions) => void;
34
- export declare const registerDependency: <T = unknown>(token: InjectableToken<T>, options: DependencyOptions) => void;
15
+ declare function createFromInvertly<T = any>(options: InjectionOptions<T>, container?: Container): T;
16
+ export declare function invertly<T = any>(token: InjectableToken<T>, container?: Container): T;
17
+ export declare function registerInjectable(options: InjectableOptions, container?: Container): void;
18
+ export declare function registerInject(options: InjectOptions, container?: Container): void;
19
+ export declare function registerDependency<T = any>(token: InjectableToken<T>, options: DependencyOptions): void;
35
20
  export { Container } from './container.factory';
36
21
  export default createFromInvertly;
@@ -1,44 +1,35 @@
1
1
  import { Container } from './container.factory';
2
- const rootContainer = new Container();
3
- const createFromInvertly = (options) => {
4
- const { config, container } = options;
5
- return (container || rootContainer).createInjectable(config);
6
- };
7
- export const invertly = (token, { container } = {}) => {
8
- return createFromInvertly({ config: { token }, container });
9
- };
10
- export const registerInjectable = (options) => {
11
- const { config, container } = options;
12
- (container || rootContainer).registerInjectable(config);
13
- };
14
- export const registerInject = (options) => {
15
- const { config, container } = options;
16
- (container || rootContainer).registerInject(config);
17
- };
18
- export const registerDependency = (token, options) => {
2
+ const invertlyContainer = new Container();
3
+ function createFromInvertly(options, container) {
4
+ return (container || invertlyContainer).createInjectable(options);
5
+ }
6
+ export function invertly(token, container) {
7
+ return createFromInvertly({ token }, container);
8
+ }
9
+ export function registerInjectable(options, container) {
10
+ (container || invertlyContainer).registerInjectable(options);
11
+ }
12
+ export function registerInject(options, container) {
13
+ (container || invertlyContainer).registerInject(options);
14
+ }
15
+ export function registerDependency(token, options) {
19
16
  const { container, injects, scopeable, singleton } = options;
20
17
  registerInjectable({
21
- config: {
22
- token,
23
- scopeable: scopeable || false,
24
- singleton: singleton || false
25
- },
26
- container
27
- });
18
+ token,
19
+ scopeable: scopeable || false,
20
+ singleton: singleton || false
21
+ }, container);
28
22
  injects?.forEach((inject, indexParent) => {
29
23
  const { index, scopeable: childrenScopeable, singleton: childrenSingleton, token: childrenToken } = inject;
30
24
  registerInject({
31
- config: {
32
- index: index || indexParent,
33
- parent: token,
34
- scopeable: childrenScopeable || scopeable || false,
35
- singleton: childrenSingleton || singleton || false,
36
- token: childrenToken
37
- },
38
- container
39
- });
25
+ index: index || indexParent,
26
+ parent: token,
27
+ scopeable: childrenScopeable || scopeable || false,
28
+ singleton: childrenSingleton || singleton || false,
29
+ token: childrenToken
30
+ }, container);
40
31
  });
41
- };
32
+ }
42
33
  export { Container } from './container.factory';
43
34
  export default createFromInvertly;
44
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA0ChD,MAAM,aAAa,GAAG,IAAI,SAAS,EAAE,CAAC;AAEtC,MAAM,kBAAkB,GAAG,CAAc,OAA4B,EAAK,EAAE;IAC1E,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEtC,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAyB,EACzB,EAAE,SAAS,KAAsB,EAAE,EAChC,EAAE;IACL,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAA0B,EAAQ,EAAE;IACrE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEtC,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAsB,EAAQ,EAAE;IAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEtC,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAyB,EACzB,OAA0B,EACpB,EAAE;IACR,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE7D,kBAAkB,CAAC;QACjB,MAAM,EAAE;YACN,KAAK;YACL,SAAS,EAAE,SAAS,IAAI,KAAK;YAC7B,SAAS,EAAE,SAAS,IAAI,KAAK;SAC9B;QACD,SAAS;KACV,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QACvC,MAAM,EACJ,KAAK,EACL,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,aAAa,EACrB,GAAG,MAAM,CAAC;QAEX,cAAc,CAAC;YACb,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK,IAAI,WAAW;gBAC3B,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,iBAAiB,IAAI,SAAS,IAAI,KAAK;gBAClD,SAAS,EAAE,iBAAiB,IAAI,SAAS,IAAI,KAAK;gBAClD,KAAK,EAAE,aAAa;aACrB;YACD,SAAS;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAgBhD,MAAM,iBAAiB,GAAG,IAAI,SAAS,EAAE,CAAC;AAE1C,SAAS,kBAAkB,CACzB,OAA4B,EAC5B,SAAqB;IAErB,OAAO,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAyB,EACzB,SAAqB;IAErB,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,SAAqB;IAErB,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,SAAqB;IAErB,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAyB,EACzB,OAA0B;IAE1B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE7D,kBAAkB,CAChB;QACE,KAAK;QACL,SAAS,EAAE,SAAS,IAAI,KAAK;QAC7B,SAAS,EAAE,SAAS,IAAI,KAAK;KAC9B,EACD,SAAS,CACV,CAAC;IAEF,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QACvC,MAAM,EACJ,KAAK,EACL,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,aAAa,EACrB,GAAG,MAAM,CAAC;QAEX,cAAc,CACZ;YACE,KAAK,EAAE,KAAK,IAAI,WAAW;YAC3B,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,iBAAiB,IAAI,SAAS,IAAI,KAAK;YAClD,SAAS,EAAE,iBAAiB,IAAI,SAAS,IAAI,KAAK;YAClD,KAAK,EAAE,aAAa;SACrB,EACD,SAAS,CACV,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,eAAe,kBAAkB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import createFromInvertly from './factories';
2
2
  export { Factory, Injectable, Scope, Singleton } from './decorators';
3
3
  export { Container, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
- export { Context, fetchInLocator, pushInLocator, saveInLocator } from './stores';
5
- export { Constructable, InjectableToken, InjectToken, LocatorConfig } from './types';
4
+ export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
5
+ export { Constructable, InjectableToken, InjectToken, LocatorOptions } from './types';
6
6
  export default createFromInvertly;
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import createFromInvertly from './factories';
2
2
  export { Factory, Injectable, Scope, Singleton } from './decorators';
3
3
  export { Container, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
- export { Context, fetchInLocator, pushInLocator, saveInLocator } from './stores';
4
+ export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
5
5
  export default createFromInvertly;
6
6
  //# 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,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,OAAO,EACP,cAAc,EACd,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,aAAa,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACL,SAAS,EACT,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,4 +1,7 @@
1
1
  import { AbstractContext } from '../types';
2
- export declare class Context extends Map<string, unknown> implements AbstractContext {
3
- request<T = any>(key: string): Undefined<T>;
2
+ export declare class Context<K = string> implements AbstractContext<K> {
3
+ private store;
4
+ set(key: K, value?: any): void;
5
+ request<T = any>(key: K): Undefined<T>;
6
+ has(key: K): boolean;
4
7
  }
@@ -1,6 +1,15 @@
1
- export class Context extends Map {
1
+ export class Context {
2
+ constructor() {
3
+ this.store = new Map();
4
+ }
5
+ set(key, value) {
6
+ this.store.set(key, value);
7
+ }
2
8
  request(key) {
3
- return this.has(key) ? this.get(key) : undefined;
9
+ return this.store.get(key);
10
+ }
11
+ has(key) {
12
+ return this.store.has(key);
4
13
  }
5
14
  }
6
15
  //# sourceMappingURL=context.store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.store.js","sourceRoot":"","sources":["../../../src/stores/context.store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,OAAQ,SAAQ,GAAoB;IACxC,OAAO,CAAU,GAAW;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,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;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,6 +1,6 @@
1
- import { InjectableToken, InjectConfig } from '../types';
1
+ import { InjectableToken, InjectOptions } from '../types';
2
2
  export declare class InjectStore {
3
3
  private collection;
4
- push(config: InjectConfig): void;
5
- fetch(token: InjectableToken): InjectConfig[];
4
+ push(options: InjectOptions): void;
5
+ request(token: InjectableToken): InjectOptions[];
6
6
  }
@@ -2,12 +2,12 @@ export class InjectStore {
2
2
  constructor() {
3
3
  this.collection = new Map();
4
4
  }
5
- push(config) {
6
- const { parent, index } = config;
7
- const injects = this.fetch(parent);
8
- injects[index] = config;
5
+ push(options) {
6
+ const { parent, index } = options;
7
+ const injects = this.request(parent);
8
+ injects[index] = options;
9
9
  }
10
- fetch(token) {
10
+ request(token) {
11
11
  const current = this.collection.get(token);
12
12
  if (current) {
13
13
  return current;
@@ -1 +1 @@
1
- {"version":3,"file":"inject.store.js","sourceRoot":"","sources":["../../../src/stores/inject.store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAAxB;QACU,eAAU,GAAyC,IAAI,GAAG,EAAE,CAAC;IAuBvE,CAAC;IArBQ,IAAI,CAAC,MAAoB;QAC9B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEnC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,KAAsB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"inject.store.js","sourceRoot":"","sources":["../../../src/stores/inject.store.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAAxB;QACU,eAAU,GAA0C,IAAI,GAAG,EAAE,CAAC;IAuBxE,CAAC;IArBQ,IAAI,CAAC,OAAsB;QAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAErC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,OAAO,CAAC,KAAsB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
- import { InjectableConfig, InjectableToken } from '../types';
2
- type Config<T> = Undefined<InjectableConfig<T>>;
1
+ import { InjectableOptions, InjectableToken } from '../types';
2
+ type Options<T> = Undefined<InjectableOptions<T>>;
3
3
  export declare class InjectableStore {
4
4
  private collection;
5
- push(config: InjectableConfig): void;
6
- fetch<T = unknown>(token: InjectableToken<T>): Config<T>;
5
+ push(options: InjectableOptions): void;
6
+ request<T = any>(token: InjectableToken<T>): Options<T>;
7
7
  }
8
8
  export {};
@@ -2,10 +2,10 @@ export class InjectableStore {
2
2
  constructor() {
3
3
  this.collection = new Map();
4
4
  }
5
- push(config) {
6
- this.collection.set(config.token, config);
5
+ push(options) {
6
+ this.collection.set(options.token, options);
7
7
  }
8
- fetch(token) {
8
+ request(token) {
9
9
  return this.collection.get(token);
10
10
  }
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"injectable.store.js","sourceRoot":"","sources":["../../../src/stores/injectable.store.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,eAAe;IAA5B;QACU,eAAU,GAA2C,IAAI,GAAG,EAAE,CAAC;IASzE,CAAC;IAPQ,IAAI,CAAC,MAAwB;QAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAc,KAAyB;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"injectable.store.js","sourceRoot":"","sources":["../../../src/stores/injectable.store.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,eAAe;IAA5B;QACU,eAAU,GAA4C,IAAI,GAAG,EAAE,CAAC;IAS1E,CAAC;IAPQ,IAAI,CAAC,OAA0B;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEM,OAAO,CAAU,KAAyB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
- import { InjectableToken, InjectToken, LocatorConfig } from '../types';
2
- type Reference = string | symbol | LocatorConfig;
3
- type Config<T> = Undefined<LocatorConfig<T>>;
4
- export declare function saveInLocator(dependencies: LocatorConfig[]): void;
1
+ import { InjectableToken, InjectToken, LocatorOptions } from '../types';
2
+ type Reference = string | symbol | LocatorOptions;
3
+ type Config<T> = Undefined<LocatorOptions<T>>;
4
+ export declare function saveInLocator(dependencies: LocatorOptions[]): void;
5
5
  export declare function pushInLocator(reference: Reference, token?: InjectableToken): void;
6
- export declare function fetchInLocator<T = unknown>(token: InjectToken<T>): Config<T>;
6
+ export declare function requestInLocator<T = any>(token: InjectToken<T>): Config<T>;
7
7
  export {};
@@ -16,7 +16,7 @@ class LocatorStore {
16
16
  this.collection.set(reference, { token, useClass: token });
17
17
  }
18
18
  }
19
- fetch(token) {
19
+ request(token) {
20
20
  return this.collection.get(token);
21
21
  }
22
22
  }
@@ -27,7 +27,7 @@ export function saveInLocator(dependencies) {
27
27
  export function pushInLocator(reference, token) {
28
28
  locatorStore.push(reference, token);
29
29
  }
30
- export function fetchInLocator(token) {
31
- return locatorStore.fetch(token);
30
+ export function requestInLocator(token) {
31
+ return locatorStore.request(token);
32
32
  }
33
33
  //# sourceMappingURL=locator.store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locator.store.js","sourceRoot":"","sources":["../../../src/stores/locator.store.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY;IAGhB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEM,IAAI,CAAC,YAA6B;QACvC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,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;YAClE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;YAEtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SACjD;aAAM,IAAI,KAAK,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SAC5D;IACH,CAAC;IAEM,KAAK,CAAc,KAAqB;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAExC,MAAM,UAAU,aAAa,CAAC,YAA6B;IACzD,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAoB,EACpB,KAAuB;IAEvB,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,cAAc,CAAc,KAAqB;IAC/D,OAAO,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"locator.store.js","sourceRoot":"","sources":["../../../src/stores/locator.store.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY;IAGhB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEM,IAAI,CAAC,YAA8B;QACxC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,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;YAClE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;YAEtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SACjD;aAAM,IAAI,KAAK,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SAC5D;IACH,CAAC;IAEM,OAAO,CAAc,KAAqB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAExC,MAAM,UAAU,aAAa,CAAC,YAA8B;IAC1D,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAoB,EACpB,KAAuB;IAEvB,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAU,KAAqB;IAC7D,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC"}