@rolster/invertly 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/index.js +241 -237
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.js +241 -237
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/esm/decorators/index.d.ts +2 -2
  6. package/dist/esm/decorators/index.js +2 -2
  7. package/dist/esm/decorators/inject.decorator.d.ts +4 -4
  8. package/dist/esm/decorators/inject.decorator.js +15 -16
  9. package/dist/esm/decorators/inject.decorator.js.map +1 -1
  10. package/dist/esm/decorators/injectable.decorator.d.ts +6 -6
  11. package/dist/esm/decorators/injectable.decorator.js +10 -10
  12. package/dist/esm/factories/container.factory.d.ts +8 -9
  13. package/dist/esm/factories/container.factory.js +105 -105
  14. package/dist/esm/factories/container.factory.js.map +1 -1
  15. package/dist/esm/factories/index.d.ts +21 -21
  16. package/dist/esm/factories/index.js +32 -34
  17. package/dist/esm/factories/index.js.map +1 -1
  18. package/dist/esm/index.d.ts +6 -6
  19. package/dist/esm/index.js +5 -5
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/stores/context.store.d.ts +7 -7
  22. package/dist/esm/stores/context.store.js +14 -14
  23. package/dist/esm/stores/index.d.ts +5 -5
  24. package/dist/esm/stores/index.js +5 -5
  25. package/dist/esm/stores/inject.store.d.ts +7 -6
  26. package/dist/esm/stores/inject.store.js +13 -19
  27. package/dist/esm/stores/inject.store.js.map +1 -1
  28. package/dist/esm/stores/injectable.store.d.ts +8 -8
  29. package/dist/esm/stores/injectable.store.js +11 -11
  30. package/dist/esm/stores/locator.store.d.ts +7 -7
  31. package/dist/esm/stores/locator.store.js +31 -32
  32. package/dist/esm/stores/locator.store.js.map +1 -1
  33. package/dist/esm/stores/scope.store.d.ts +6 -7
  34. package/dist/esm/stores/scope.store.js +11 -11
  35. package/dist/esm/stores/scope.store.js.map +1 -1
  36. package/dist/esm/types/constructable.type.d.ts +1 -1
  37. package/dist/esm/types/constructable.type.js +1 -1
  38. package/dist/esm/types/context.type.d.ts +5 -5
  39. package/dist/esm/types/context.type.js +1 -1
  40. package/dist/esm/types/index.d.ts +5 -5
  41. package/dist/esm/types/index.js +5 -5
  42. package/dist/esm/types/inject.type.d.ts +9 -9
  43. package/dist/esm/types/inject.type.js +1 -1
  44. package/dist/esm/types/injectable.type.d.ts +12 -12
  45. package/dist/esm/types/injectable.type.js +1 -1
  46. package/dist/esm/types/locator.type.d.ts +8 -8
  47. package/dist/esm/types/locator.type.js +1 -1
  48. package/package.json +5 -4
@@ -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,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
+ {"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,6 +1,6 @@
1
- interface InjectableOptions {
2
- scopeable?: boolean;
3
- singleton?: boolean;
4
- }
5
- export declare function Injectable(options?: InjectableOptions): ClassDecorator;
6
- export {};
1
+ interface InjectableOptions {
2
+ scopeable?: boolean;
3
+ singleton?: boolean;
4
+ }
5
+ export declare function Injectable(options?: InjectableOptions): ClassDecorator;
6
+ export {};
@@ -1,11 +1,11 @@
1
- import { registerInjectable } from '../factories';
2
- export function Injectable(options) {
3
- return (token) => {
4
- registerInjectable({
5
- scopeable: !!options?.scopeable,
6
- singleton: !!options?.singleton,
7
- token
8
- });
9
- };
10
- }
1
+ import { registerInjectable } from '../factories';
2
+ export function Injectable(options) {
3
+ return (token) => {
4
+ registerInjectable({
5
+ scopeable: !!options?.scopeable,
6
+ singleton: !!options?.singleton,
7
+ token
8
+ });
9
+ };
10
+ }
11
11
  //# sourceMappingURL=injectable.decorator.js.map
@@ -1,9 +1,8 @@
1
- import 'reflect-metadata';
2
- import { InjectOptions, InjectableOptions, InjectionOptions } from '../types';
3
- export declare class Container {
4
- private readonly warehouse;
5
- constructor();
6
- registerInjectable(options: InjectableOptions): void;
7
- registerInject(options: InjectOptions): void;
8
- createInjectable<T = any>(options: InjectionOptions<T>): T;
9
- }
1
+ import 'reflect-metadata';
2
+ import { InjectOptions, InjectableOptions, InjectionOptions } from '../types';
3
+ export declare class InvertlyContainer {
4
+ private readonly dataCenter;
5
+ registerInjectable(options: InjectableOptions): void;
6
+ registerInject(options: InjectOptions): void;
7
+ createInjectable<T = any>(options: InjectionOptions<T>): T;
8
+ }
@@ -1,106 +1,106 @@
1
- import 'reflect-metadata';
2
- import { Context, InjectStore, InjectableStore, ScopeStore, requestInLocator } from '../stores';
3
- class Warehouse {
4
- constructor() {
5
- this.scope = new ScopeStore();
6
- this.injectables = new InjectableStore();
7
- this.injects = new InjectStore();
8
- }
9
- }
10
- class Dependency {
11
- constructor(warehouse, context) {
12
- this.warehouse = warehouse;
13
- this.context = context;
14
- this.scope = new ScopeStore();
15
- }
16
- build(injectable) {
17
- const options = this.warehouse.injectables.request(injectable);
18
- if (!options) {
19
- throw Error(`Class ${injectable.toString()} is not found in the collection`);
20
- }
21
- const { scopeable, singleton, token } = options;
22
- return this.createInstance({ token, scopeable, singleton });
23
- }
24
- createObject(token) {
25
- const Constructor = token;
26
- const tokens = this.reflectTokens(Constructor);
27
- const params = tokens
28
- ? this.createReflectArgs({ token, tokens })
29
- : this.createTokenArgs(token);
30
- return new Constructor(...params);
31
- }
32
- reflectTokens(constructable) {
33
- return Reflect.getMetadata('design:paramtypes', constructable);
34
- }
35
- createFromScope({ token, scope }) {
36
- const instance = scope.request(token);
37
- if (instance) {
38
- return instance;
39
- }
40
- const object = this.createObject(token);
41
- scope.push(token, object);
42
- return object;
43
- }
44
- createFromContainer(token) {
45
- return this.createFromScope({ token, scope: this.warehouse.scope });
46
- }
47
- createInstance(options) {
48
- const { token, scopeable, singleton } = options;
49
- if (singleton) {
50
- return this.createFromContainer(token);
51
- }
52
- if (scopeable) {
53
- return this.createFromScope({ token, scope: this.scope });
54
- }
55
- return this.createObject(token);
56
- }
57
- createFromDecorator(inject) {
58
- const { token, scopeable, singleton } = inject;
59
- const locator = requestInLocator(token);
60
- return this.createInstance({
61
- token: locator?.useClass ?? token,
62
- scopeable,
63
- singleton
64
- });
65
- }
66
- createReflectArgs({ tokens, token }) {
67
- const injects = this.warehouse.injects.request(token);
68
- return tokens.map((token, index) => {
69
- const inject = injects[index];
70
- if (inject) {
71
- return this.createFromDecorator(inject);
72
- }
73
- const locator = requestInLocator(token);
74
- if (locator) {
75
- const { useClass: token, scopeable, singleton } = locator;
76
- return this.createInstance({ token, scopeable, singleton });
77
- }
78
- if (token === Context) {
79
- return this.context;
80
- }
81
- return this.createObject(token);
82
- });
83
- }
84
- createTokenArgs(token) {
85
- const injects = this.warehouse.injects.request(token);
86
- return injects.reduce((objects, { index, scopeable, singleton, token }) => {
87
- objects[index] = this.createInstance({ token, scopeable, singleton });
88
- return objects;
89
- }, []);
90
- }
91
- }
92
- export class Container {
93
- constructor() {
94
- this.warehouse = new Warehouse();
95
- }
96
- registerInjectable(options) {
97
- this.warehouse.injectables.push(options);
98
- }
99
- registerInject(options) {
100
- this.warehouse.injects.push(options);
101
- }
102
- createInjectable(options) {
103
- return new Dependency(this.warehouse, options.context).build(options.token);
104
- }
105
- }
1
+ import 'reflect-metadata';
2
+ import { Context, InjectStore, InjectableStore, ScopeStore, requestInLocator } from '../stores';
3
+ class DataCenter {
4
+ constructor() {
5
+ this.scope = new ScopeStore();
6
+ this.injectables = new InjectableStore();
7
+ this.injects = new InjectStore();
8
+ }
9
+ }
10
+ class InjectableFactory {
11
+ constructor(dataCenter, context) {
12
+ this.dataCenter = dataCenter;
13
+ this.context = context;
14
+ this.scope = new ScopeStore();
15
+ }
16
+ build(injectable) {
17
+ const options = this.dataCenter.injectables.request(injectable);
18
+ if (!options) {
19
+ throw Error(`Class ${injectable.toString()} is not found in the collection`);
20
+ }
21
+ return this.createInstance(options);
22
+ }
23
+ createObject(token) {
24
+ const Constructor = token;
25
+ const tokens = this.reflectTokens(Constructor);
26
+ const params = tokens
27
+ ? this.createReflectArgs({ token, tokens })
28
+ : this.createTokenArgs(token);
29
+ return new Constructor(...params);
30
+ }
31
+ reflectTokens(constructable) {
32
+ return Reflect.getMetadata('design:paramtypes', constructable);
33
+ }
34
+ createFromScope({ token, scope }) {
35
+ let instance = scope.request(token);
36
+ if (!instance) {
37
+ instance = this.createObject(token);
38
+ scope.push(token, instance);
39
+ }
40
+ return instance;
41
+ }
42
+ createFromContainer(token) {
43
+ return this.createFromScope({ token, scope: this.dataCenter.scope });
44
+ }
45
+ createInstance(options) {
46
+ const { token, scopeable, singleton } = options;
47
+ if (singleton) {
48
+ return this.createFromContainer(token);
49
+ }
50
+ if (scopeable) {
51
+ return this.createFromScope({ token, scope: this.scope });
52
+ }
53
+ return this.createObject(token);
54
+ }
55
+ createFromDecorator(inject) {
56
+ const { token, scopeable, singleton } = inject;
57
+ const locator = requestInLocator(token);
58
+ return this.createInstance({
59
+ token: locator?.useClass ?? token,
60
+ scopeable,
61
+ singleton
62
+ });
63
+ }
64
+ createReflectArgs({ tokens, token }) {
65
+ const injects = this.dataCenter.injects.request(token);
66
+ return tokens.map((token, index) => {
67
+ const inject = injects[index];
68
+ if (inject) {
69
+ return this.createFromDecorator(inject);
70
+ }
71
+ const locator = requestInLocator(token);
72
+ if (locator) {
73
+ return this.createInstance({
74
+ ...locator,
75
+ token: locator.useClass
76
+ });
77
+ }
78
+ if (token === Context) {
79
+ return this.context;
80
+ }
81
+ return this.createObject(token);
82
+ });
83
+ }
84
+ createTokenArgs(token) {
85
+ const injects = this.dataCenter.injects.request(token);
86
+ return injects.reduce((objects, options) => {
87
+ objects[options.index] = this.createInstance({ ...options });
88
+ return objects;
89
+ }, []);
90
+ }
91
+ }
92
+ export class InvertlyContainer {
93
+ constructor() {
94
+ this.dataCenter = new DataCenter();
95
+ }
96
+ registerInjectable(options) {
97
+ this.dataCenter.injectables.push(options);
98
+ }
99
+ registerInject(options) {
100
+ this.dataCenter.injects.push(options);
101
+ }
102
+ createInjectable(options) {
103
+ return new InjectableFactory(this.dataCenter, options.context).build(options.token);
104
+ }
105
+ }
106
106
  //# sourceMappingURL=container.factory.js.map
@@ -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,21 @@
1
- import { InjectOptions, InjectToken, InjectableOptions, InjectableToken, InjectionOptions } from '../types';
2
- import { Container } from './container.factory';
3
- interface Inject<T = any> {
4
- token: InjectToken<T>;
5
- index?: number;
6
- scopeable?: boolean;
7
- singleton?: boolean;
8
- }
9
- interface DependencyOptions {
10
- container?: Container;
11
- injects?: Inject[];
12
- scopeable?: boolean;
13
- singleton?: boolean;
14
- }
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;
20
- export { Container } from './container.factory';
21
- export default createFromInvertly;
1
+ import { InjectOptions, InjectToken, InjectableOptions, InjectableToken, InjectionOptions } from '../types';
2
+ import { InvertlyContainer } from './container.factory';
3
+ interface Inject<T = any> {
4
+ token: InjectToken<T>;
5
+ index?: number;
6
+ scopeable?: boolean;
7
+ singleton?: boolean;
8
+ }
9
+ interface DependencyOptions {
10
+ container?: InvertlyContainer;
11
+ injects?: Inject[];
12
+ scopeable?: boolean;
13
+ singleton?: boolean;
14
+ }
15
+ declare function createFromInvertly<T = any>(options: InjectionOptions<T>, container?: InvertlyContainer): T;
16
+ export declare function invertly<T = any>(token: InjectableToken<T>, container?: InvertlyContainer): T;
17
+ export declare function registerInjectable(options: InjectableOptions, container?: InvertlyContainer): void;
18
+ export declare function registerInject(options: InjectOptions, container?: InvertlyContainer): void;
19
+ export declare function registerDependency<T = any>(token: InjectableToken<T>, options: DependencyOptions): void;
20
+ export { InvertlyContainer } from './container.factory';
21
+ export default createFromInvertly;
@@ -1,35 +1,33 @@
1
- import { Container } from './container.factory';
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) {
16
- const { container, injects, scopeable, singleton } = options;
17
- registerInjectable({
18
- token,
19
- scopeable: scopeable ?? false,
20
- singleton: singleton ?? false
21
- }, container);
22
- injects?.forEach((inject, indexParent) => {
23
- const { index, scopeable: childrenScopeable, singleton: childrenSingleton, token: childrenToken } = inject;
24
- registerInject({
25
- index: index ?? indexParent,
26
- parent: token,
27
- scopeable: childrenScopeable ?? scopeable ?? false,
28
- singleton: childrenSingleton ?? singleton ?? false,
29
- token: childrenToken
30
- }, container);
31
- });
32
- }
33
- export { Container } from './container.factory';
34
- export default createFromInvertly;
1
+ import { InvertlyContainer } from './container.factory';
2
+ const INVERTLY_CONTAINER = new InvertlyContainer();
3
+ function createFromInvertly(options, container) {
4
+ return (container ?? INVERTLY_CONTAINER).createInjectable(options);
5
+ }
6
+ export function invertly(token, container) {
7
+ return createFromInvertly({ token }, container);
8
+ }
9
+ export function registerInjectable(options, container) {
10
+ (container ?? INVERTLY_CONTAINER).registerInjectable(options);
11
+ }
12
+ export function registerInject(options, container) {
13
+ (container ?? INVERTLY_CONTAINER).registerInject(options);
14
+ }
15
+ export function registerDependency(token, options) {
16
+ registerInjectable({
17
+ token,
18
+ scopeable: options.scopeable ?? false,
19
+ singleton: options.singleton ?? false
20
+ }, options.container);
21
+ options.injects?.forEach((inject, indexParent) => {
22
+ registerInject({
23
+ index: inject.index ?? indexParent,
24
+ parent: token,
25
+ scopeable: inject.scopeable ?? options.scopeable ?? false,
26
+ singleton: inject.singleton ?? options.singleton ?? false,
27
+ token: inject.token
28
+ }, options.container);
29
+ });
30
+ }
31
+ export { InvertlyContainer } from './container.factory';
32
+ export default createFromInvertly;
35
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
+ {"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,6 +1,6 @@
1
- import createFromInvertly from './factories';
2
- export { Factory, Injectable, Scope, Singleton } from './decorators';
3
- export { Container, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
- export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
5
- export { Constructable, InjectableToken, InjectToken, LocatorOptions } from './types';
6
- export default createFromInvertly;
1
+ import createFromInvertly from './factories';
2
+ export { Factory, Injectable, Scope, Singleton } from './decorators';
3
+ export { InvertlyContainer as Container, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
+ export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
5
+ export { Constructable, InjectableToken, InjectToken, LocatorOptions } from './types';
6
+ export default createFromInvertly;
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import createFromInvertly from './factories';
2
- export { Factory, Injectable, Scope, Singleton } from './decorators';
3
- export { Container, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
- export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
5
- export default createFromInvertly;
1
+ import createFromInvertly from './factories';
2
+ export { Factory, Injectable, Scope, Singleton } from './decorators';
3
+ export { InvertlyContainer as Container, invertly, registerDependency, registerInject, registerInjectable } from './factories';
4
+ export { Context, requestInLocator, pushInLocator, saveInLocator } from './stores';
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,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,aAAa,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACL,iBAAiB,IAAI,SAAS,EAC9B,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,7 +1,7 @@
1
- import { AbstractContext } from '../types';
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;
7
- }
1
+ import { AbstractContext } from '../types';
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;
7
+ }
@@ -1,15 +1,15 @@
1
- export class Context {
2
- constructor() {
3
- this.store = new Map();
4
- }
5
- set(key, value) {
6
- this.store.set(key, value);
7
- }
8
- request(key) {
9
- return this.store.get(key);
10
- }
11
- has(key) {
12
- return this.store.has(key);
13
- }
14
- }
1
+ export class Context {
2
+ constructor() {
3
+ this.store = new Map();
4
+ }
5
+ set(key, value) {
6
+ this.store.set(key, value);
7
+ }
8
+ request(key) {
9
+ return this.store.get(key);
10
+ }
11
+ has(key) {
12
+ return this.store.has(key);
13
+ }
14
+ }
15
15
  //# sourceMappingURL=context.store.js.map
@@ -1,5 +1,5 @@
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
+ 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 +1,6 @@
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
+ 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
6
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,7 @@
1
- import { InjectableToken, InjectOptions } from '../types';
2
- export declare class InjectStore {
3
- private collection;
4
- push(options: InjectOptions): void;
5
- request(token: InjectableToken): InjectOptions[];
6
- }
1
+ import { InjectableToken, InjectOptions } from '../types';
2
+ export declare class InjectStore {
3
+ private collection;
4
+ constructor();
5
+ push(options: InjectOptions): void;
6
+ request(token: InjectableToken): InjectOptions[];
7
+ }
@@ -1,20 +1,14 @@
1
- export class InjectStore {
2
- constructor() {
3
- this.collection = new Map();
4
- }
5
- push(options) {
6
- const { parent, index } = options;
7
- const injects = this.request(parent);
8
- injects[index] = options;
9
- }
10
- request(token) {
11
- const current = this.collection.get(token);
12
- if (current) {
13
- return current;
14
- }
15
- const injects = [];
16
- this.collection.set(token, injects);
17
- return injects;
18
- }
19
- }
1
+ import { SecureMap } from '@rolster/commons';
2
+ export class InjectStore {
3
+ constructor() {
4
+ this.collection = new SecureMap(() => []);
5
+ }
6
+ push(options) {
7
+ const injects = this.collection.request(options.parent);
8
+ injects[options.index] = options;
9
+ }
10
+ request(token) {
11
+ return this.collection.request(token);
12
+ }
13
+ }
20
14
  //# sourceMappingURL=inject.store.js.map
@@ -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,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
+ {"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,8 +1,8 @@
1
- import { InjectableOptions, InjectableToken } from '../types';
2
- type Options<T> = Undefined<InjectableOptions<T>>;
3
- export declare class InjectableStore {
4
- private collection;
5
- push(options: InjectableOptions): void;
6
- request<T = any>(token: InjectableToken<T>): Options<T>;
7
- }
8
- export {};
1
+ import { InjectableOptions, InjectableToken } from '../types';
2
+ type Options<T> = Undefined<InjectableOptions<T>>;
3
+ export declare class InjectableStore {
4
+ private collection;
5
+ push(options: InjectableOptions): void;
6
+ request<T = any>(token: InjectableToken<T>): Options<T>;
7
+ }
8
+ export {};
@@ -1,12 +1,12 @@
1
- export class InjectableStore {
2
- constructor() {
3
- this.collection = new Map();
4
- }
5
- push(options) {
6
- this.collection.set(options.token, options);
7
- }
8
- request(token) {
9
- return this.collection.get(token);
10
- }
11
- }
1
+ export class InjectableStore {
2
+ constructor() {
3
+ this.collection = new Map();
4
+ }
5
+ push(options) {
6
+ this.collection.set(options.token, options);
7
+ }
8
+ request(token) {
9
+ return this.collection.get(token);
10
+ }
11
+ }
12
12
  //# sourceMappingURL=injectable.store.js.map