@spinajs/di 2.0.85 → 2.0.87

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 (133) hide show
  1. package/lib/{array.d.ts → cjs/array.d.ts} +0 -0
  2. package/lib/cjs/array.d.ts.map +1 -0
  3. package/lib/cjs/array.js +14 -0
  4. package/lib/cjs/array.js.map +1 -0
  5. package/lib/{binder.d.ts → cjs/binder.d.ts} +0 -0
  6. package/lib/cjs/binder.d.ts.map +1 -0
  7. package/lib/cjs/binder.js +97 -0
  8. package/lib/cjs/binder.js.map +1 -0
  9. package/lib/{container-cache.d.ts → cjs/container-cache.d.ts} +0 -0
  10. package/lib/cjs/container-cache.d.ts.map +1 -0
  11. package/lib/cjs/container-cache.js +64 -0
  12. package/lib/cjs/container-cache.js.map +1 -0
  13. package/lib/cjs/container.d.ts +134 -0
  14. package/lib/cjs/container.d.ts.map +1 -0
  15. package/lib/cjs/container.js +466 -0
  16. package/lib/cjs/container.js.map +1 -0
  17. package/lib/{decorators.d.ts → cjs/decorators.d.ts} +0 -0
  18. package/lib/cjs/decorators.d.ts.map +1 -0
  19. package/lib/cjs/decorators.js +304 -0
  20. package/lib/cjs/decorators.js.map +1 -0
  21. package/lib/{enums.d.ts → cjs/enums.d.ts} +0 -0
  22. package/lib/cjs/enums.d.ts.map +1 -0
  23. package/lib/cjs/enums.js +36 -0
  24. package/lib/cjs/enums.js.map +1 -0
  25. package/lib/{exceptions.d.ts → cjs/exceptions.d.ts} +0 -0
  26. package/lib/cjs/exceptions.d.ts.map +1 -0
  27. package/lib/cjs/exceptions.js +26 -0
  28. package/lib/cjs/exceptions.js.map +1 -0
  29. package/lib/{helpers.d.ts → cjs/helpers.d.ts} +0 -0
  30. package/lib/cjs/helpers.d.ts.map +1 -0
  31. package/lib/cjs/helpers.js +69 -0
  32. package/lib/cjs/helpers.js.map +1 -0
  33. package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  34. package/lib/cjs/index.d.ts.map +1 -0
  35. package/lib/cjs/index.js +42 -0
  36. package/lib/cjs/index.js.map +1 -0
  37. package/lib/cjs/interfaces.d.ts +152 -0
  38. package/lib/cjs/interfaces.d.ts.map +1 -0
  39. package/lib/cjs/interfaces.js +48 -0
  40. package/lib/cjs/interfaces.js.map +1 -0
  41. package/lib/{registry.d.ts → cjs/registry.d.ts} +0 -0
  42. package/lib/cjs/registry.d.ts.map +1 -0
  43. package/lib/cjs/registry.js +81 -0
  44. package/lib/cjs/registry.js.map +1 -0
  45. package/lib/{root.d.ts → cjs/root.d.ts} +0 -0
  46. package/lib/cjs/root.d.ts.map +1 -0
  47. package/lib/cjs/root.js +177 -0
  48. package/lib/cjs/root.js.map +1 -0
  49. package/lib/{types.d.ts → cjs/types.d.ts} +0 -0
  50. package/lib/cjs/types.d.ts.map +1 -0
  51. package/lib/cjs/types.js +3 -0
  52. package/lib/cjs/types.js.map +1 -0
  53. package/lib/mjs/array.d.ts +11 -0
  54. package/lib/mjs/array.d.ts.map +1 -0
  55. package/lib/{array.js → mjs/array.js} +0 -0
  56. package/lib/mjs/array.js.map +1 -0
  57. package/lib/mjs/binder.d.ts +40 -0
  58. package/lib/mjs/binder.d.ts.map +1 -0
  59. package/lib/{binder.js → mjs/binder.js} +0 -0
  60. package/lib/mjs/binder.js.map +1 -0
  61. package/lib/mjs/container-cache.d.ts +18 -0
  62. package/lib/mjs/container-cache.d.ts.map +1 -0
  63. package/lib/{container-cache.js → mjs/container-cache.js} +0 -0
  64. package/lib/mjs/container-cache.js.map +1 -0
  65. package/lib/{container.d.ts → mjs/container.d.ts} +0 -0
  66. package/lib/mjs/container.d.ts.map +1 -0
  67. package/lib/{container.js → mjs/container.js} +0 -0
  68. package/lib/mjs/container.js.map +1 -0
  69. package/lib/mjs/decorators.d.ts +142 -0
  70. package/lib/mjs/decorators.d.ts.map +1 -0
  71. package/lib/{decorators.js → mjs/decorators.js} +0 -0
  72. package/lib/mjs/decorators.js.map +1 -0
  73. package/lib/mjs/enums.d.ts +32 -0
  74. package/lib/mjs/enums.d.ts.map +1 -0
  75. package/lib/{enums.js → mjs/enums.js} +1 -1
  76. package/lib/mjs/enums.js.map +1 -0
  77. package/lib/mjs/exceptions.d.ts +18 -0
  78. package/lib/mjs/exceptions.d.ts.map +1 -0
  79. package/lib/{exceptions.js → mjs/exceptions.js} +0 -0
  80. package/lib/mjs/exceptions.js.map +1 -0
  81. package/lib/mjs/helpers.d.ts +26 -0
  82. package/lib/mjs/helpers.d.ts.map +1 -0
  83. package/lib/{helpers.js → mjs/helpers.js} +0 -0
  84. package/lib/mjs/helpers.js.map +1 -0
  85. package/lib/mjs/index.d.ts +13 -0
  86. package/lib/mjs/index.d.ts.map +1 -0
  87. package/lib/{index.js → mjs/index.js} +0 -0
  88. package/lib/mjs/index.js.map +1 -0
  89. package/lib/{interfaces.d.ts → mjs/interfaces.d.ts} +0 -0
  90. package/lib/mjs/interfaces.d.ts.map +1 -0
  91. package/lib/{interfaces.js → mjs/interfaces.js} +0 -0
  92. package/lib/mjs/interfaces.js.map +1 -0
  93. package/lib/mjs/registry.d.ts +15 -0
  94. package/lib/mjs/registry.d.ts.map +1 -0
  95. package/lib/{registry.js → mjs/registry.js} +0 -0
  96. package/lib/mjs/registry.js.map +1 -0
  97. package/lib/mjs/root.d.ts +107 -0
  98. package/lib/mjs/root.d.ts.map +1 -0
  99. package/lib/{root.js → mjs/root.js} +0 -0
  100. package/lib/mjs/root.js.map +1 -0
  101. package/lib/mjs/types.d.ts +14 -0
  102. package/lib/mjs/types.d.ts.map +1 -0
  103. package/lib/{types.js → mjs/types.js} +0 -0
  104. package/lib/mjs/types.js.map +1 -0
  105. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  106. package/lib/tsconfig.tsbuildinfo +1 -0
  107. package/package.json +11 -4
  108. package/lib/array.d.ts.map +0 -1
  109. package/lib/array.js.map +0 -1
  110. package/lib/binder.d.ts.map +0 -1
  111. package/lib/binder.js.map +0 -1
  112. package/lib/container-cache.d.ts.map +0 -1
  113. package/lib/container-cache.js.map +0 -1
  114. package/lib/container.d.ts.map +0 -1
  115. package/lib/container.js.map +0 -1
  116. package/lib/decorators.d.ts.map +0 -1
  117. package/lib/decorators.js.map +0 -1
  118. package/lib/enums.d.ts.map +0 -1
  119. package/lib/enums.js.map +0 -1
  120. package/lib/exceptions.d.ts.map +0 -1
  121. package/lib/exceptions.js.map +0 -1
  122. package/lib/helpers.d.ts.map +0 -1
  123. package/lib/helpers.js.map +0 -1
  124. package/lib/index.d.ts.map +0 -1
  125. package/lib/index.js.map +0 -1
  126. package/lib/interfaces.d.ts.map +0 -1
  127. package/lib/interfaces.js.map +0 -1
  128. package/lib/registry.d.ts.map +0 -1
  129. package/lib/registry.js.map +0 -1
  130. package/lib/root.d.ts.map +0 -1
  131. package/lib/root.js.map +0 -1
  132. package/lib/types.d.ts.map +0 -1
  133. package/lib/types.js.map +0 -1
@@ -0,0 +1,152 @@
1
+ /// <reference types="node" />
2
+ import { ResolveType } from './enums.js';
3
+ import { Class, Factory } from './types.js';
4
+ import { EventEmitter } from 'events';
5
+ import { TypedArray } from './array.js';
6
+ import { Registry } from './registry.js';
7
+ import { ContainerCache } from './container-cache.js';
8
+ export interface IInstanceCheck {
9
+ __checkInstance__(creationOptions: any): boolean;
10
+ }
11
+ /**
12
+ * Interface to describe DI binding behaviour
13
+ */
14
+ export interface IBind {
15
+ /**
16
+ * `as` binding (alias)
17
+ *
18
+ * @param type - base class that is being registered
19
+ */
20
+ as(type: Class<any> | string): this;
21
+ /**
22
+ * self bind, class should be resolved by its name. Its default behaviour.
23
+ */
24
+ asSelf(): this;
25
+ /**
26
+ * Registers as value, it wont be resolved or called, just stored as is in container
27
+ * @param type - name of type / key after whitch implementation will be resolved
28
+ * @param override - if true, any value registered before is overriden by new one
29
+ */
30
+ asValue(type: string, override: boolean): this;
31
+ asValue(type: string): this;
32
+ /**
33
+ *
34
+ * Add plain value to container, value is stored in hashmap for quick access
35
+ * eg. we have multiple value converters and we wanc o(1) access, instead searching for
36
+ * converter for specific type
37
+ *
38
+ * @param type - name of added value
39
+ * @param key - hashmap key
40
+ */
41
+ asMapValue(type: string, hashKey: string): this;
42
+ /**
43
+ * Registers object as single instance ( singleton )
44
+ */
45
+ singleInstance(): this;
46
+ }
47
+ export interface ResolvableObject {
48
+ [key: string]: any;
49
+ }
50
+ export interface IContainer extends EventEmitter {
51
+ Cache: ContainerCache;
52
+ Registry: Registry;
53
+ Parent: IContainer;
54
+ clear(): void;
55
+ clearRegistry(): void;
56
+ clearCache(): void;
57
+ register<T>(implementation: Class<T> | Factory<T> | ResolvableObject): IBind;
58
+ unregister<T>(implementation: string | Class<T> | Factory<T> | ResolvableObject): void;
59
+ uncache<T>(source: string | Class<T> | TypedArray<T>, parent?: boolean): void;
60
+ child(): IContainer;
61
+ get<T>(service: TypedArray<T>, parent?: boolean): T[] | null;
62
+ get<T>(service: string | Class<T>, parent?: boolean): T | null;
63
+ get<T>(service: string | Class<T> | TypedArray<T>, parent?: boolean): T | T[] | null;
64
+ getRegisteredTypes<T>(service: string | Class<T> | TypedArray<T>, parent?: boolean): Array<Class<unknown> | Factory<unknown>>;
65
+ isResolved<T>(service: string | Class<T>, parent?: boolean): boolean;
66
+ hasRegistered<T>(service: Class<T> | string | TypedArray<T>, parent?: boolean): boolean;
67
+ hasRegisteredType<T>(source: Class<any> | string | TypedArray<any>, type: Class<T> | string | TypedArray<T> | object, parent?: boolean): boolean;
68
+ resolve<T>(type: string, options?: unknown[], check?: boolean): T;
69
+ resolve<T>(type: string, check?: boolean): T;
70
+ resolve<T>(type: Class<T> | Factory<T>, options?: unknown[] | boolean, check?: boolean): T extends AsyncService ? Promise<T> : T;
71
+ resolve<T>(type: TypedArray<T>, options?: unknown[] | boolean, check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
72
+ resolve<T>(type: Class<T> | Factory<T>, check?: boolean): T extends AsyncService ? Promise<T> : T;
73
+ resolve<T>(type: TypedArray<T>, check?: boolean): T extends AsyncService ? Promise<T[]> : T[];
74
+ resolve<T>(type: Class<T> | TypedArray<T> | string, options?: unknown[] | boolean, check?: boolean): Promise<T | T[]> | T | T[];
75
+ dispose(): Promise<void>;
76
+ extractDescriptor(type: Class<unknown>): IInjectDescriptor<unknown>;
77
+ }
78
+ /**
79
+ * Injection description definition structure
80
+ */
81
+ export interface IInjectDescriptor<T> {
82
+ inject: IToInject<T>[];
83
+ resolver: ResolveType;
84
+ }
85
+ export interface IToInject<T> {
86
+ inject: Class<T> | TypedArray<T>;
87
+ autoinject: boolean;
88
+ autoinjectKey: string;
89
+ /**
90
+ * additional data passed to DI when resolving
91
+ */
92
+ data?: any;
93
+ /**
94
+ * Additional options passed to resolved options
95
+ */
96
+ options?: any;
97
+ /**
98
+ * Callback used to resolve service
99
+ * name of service we want to resolve
100
+ * eg. we have multiple \@injectable registered
101
+ * and we want specific one
102
+ *
103
+ * It is specifically for use with configuration module
104
+ * where services can be changed in configuration files
105
+ * and allows to use @AutoinjectService() decorator
106
+ */
107
+ serviceFunc?: (data: string | any[], container: IContainer) => IServiceFuncResult | IServiceFuncResult[];
108
+ mapFunc?: (x: IMappableService) => string;
109
+ }
110
+ export interface IMappableService {
111
+ ServiceName: string;
112
+ }
113
+ export interface IServiceFuncResult {
114
+ service: string;
115
+ options?: any;
116
+ }
117
+ export interface IResolvedInjection {
118
+ instance: unknown;
119
+ autoinject: boolean;
120
+ autoinjectKey: string;
121
+ }
122
+ /**
123
+ * Interface to describe DI resolve strategies. Strategies are used do
124
+ * do some work at object creation eg. initialize objects that inherits from same class
125
+ * specific way but without need for factory function.
126
+ *
127
+ *
128
+ * @see FrameworkModuleSyncService implementation
129
+ */
130
+ export declare class Service {
131
+ protected resolved: boolean;
132
+ get Resolved(): boolean;
133
+ /**
134
+ * Use to dispose service, relase all resources, stop timers etc.
135
+ *
136
+ */
137
+ dispose(): Promise<void>;
138
+ }
139
+ export declare abstract class SyncService extends Service {
140
+ resolve(): void;
141
+ }
142
+ export declare class AsyncService extends Service {
143
+ resolve(): Promise<void>;
144
+ }
145
+ export declare abstract class Bootstrapper {
146
+ abstract bootstrap(): Promise<void> | void;
147
+ }
148
+ export interface IAutoinjectOptions {
149
+ mapFunc?: (x: IMappableService) => string;
150
+ options?: any;
151
+ }
152
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Bootstrapper = exports.AsyncService = exports.SyncService = exports.Service = void 0;
4
+ /**
5
+ * Interface to describe DI resolve strategies. Strategies are used do
6
+ * do some work at object creation eg. initialize objects that inherits from same class
7
+ * specific way but without need for factory function.
8
+ *
9
+ *
10
+ * @see FrameworkModuleSyncService implementation
11
+ */
12
+ // export interface IStrategy {
13
+ // resolve: (target: any, container: IContainer) => void;
14
+ // }
15
+ // export interface IAsyncStrategy {
16
+ // resolveA: (target: any, container: IContainer) => Promise<void>;
17
+ // }
18
+ class Service {
19
+ constructor() {
20
+ this.resolved = false;
21
+ }
22
+ get Resolved() {
23
+ return this.resolved;
24
+ }
25
+ /**
26
+ * Use to dispose service, relase all resources, stop timers etc.
27
+ *
28
+ */
29
+ async dispose() { }
30
+ }
31
+ exports.Service = Service;
32
+ class SyncService extends Service {
33
+ resolve() {
34
+ this.resolved = true;
35
+ }
36
+ }
37
+ exports.SyncService = SyncService;
38
+ class AsyncService extends Service {
39
+ /* eslint-disable */
40
+ async resolve() {
41
+ this.resolved = true;
42
+ }
43
+ }
44
+ exports.AsyncService = AsyncService;
45
+ class Bootstrapper {
46
+ }
47
+ exports.Bootstrapper = Bootstrapper;
48
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;AAiJA;;;;;;;GAOG;AACH,+BAA+B;AAC/B,6DAA6D;AAC7D,IAAI;AAEJ,oCAAoC;AACpC,uEAAuE;AACvE,IAAI;AAEJ,MAAa,OAAO;IAApB;QACY,aAAQ,GAAG,KAAK,CAAC;IAU7B,CAAC;IATC,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO,KAAI,CAAC;CAC1B;AAXD,0BAWC;AAED,MAAsB,WAAY,SAAQ,OAAO;IACxC,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AAJD,kCAIC;AAED,MAAa,YAAa,SAAQ,OAAO;IACvC,oBAAoB;IACb,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AALD,oCAKC;AAED,MAAsB,YAAY;CAEjC;AAFD,oCAEC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,QAAQ;IAGP,SAAS,CAAC,SAAS,EAAE,UAAU;IAF3C,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAA4B;gBAE5C,SAAS,EAAE,UAAU;IAEpC,KAAK;IAIL,UAAU,CAAC,IAAI,EAAE,GAAG;IAWpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG;IAqB/D,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAWvI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,UAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAkBhH,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,UAAO,GAAG,OAAO;CAS5F"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Registry = void 0;
4
+ const exceptions_1 = require("@spinajs/exceptions");
5
+ const helpers_js_1 = require("./helpers.js");
6
+ class Registry {
7
+ constructor(container) {
8
+ this.container = container;
9
+ this.registry = new Map();
10
+ }
11
+ clear() {
12
+ this.registry.clear();
13
+ }
14
+ unregister(type) {
15
+ const tname = (0, helpers_js_1.getTypeName)(type);
16
+ this.registry.forEach((value) => {
17
+ const index = value.findIndex((x) => (0, helpers_js_1.getTypeName)(x) === tname);
18
+ if (index !== -1) {
19
+ value.splice(index, 1);
20
+ }
21
+ });
22
+ }
23
+ register(name, type) {
24
+ if (!(0, helpers_js_1.isConstructor)(type) && !(0, helpers_js_1.isFactory)(type) && !(0, helpers_js_1.isObject)(type)) {
25
+ throw new exceptions_1.InvalidOperation('cannot register type if its not an class or factory function');
26
+ }
27
+ else {
28
+ const tname = (0, helpers_js_1.getTypeName)(name);
29
+ const value = this.registry.get(tname);
30
+ if (value) {
31
+ // factory functions, we always add to registry
32
+ // its impossible to check for duplicates
33
+ // all would return 'Function' type
34
+ if ((0, helpers_js_1.isFactory)(type)) {
35
+ value.push(type);
36
+ }
37
+ else if (!value.find((v) => (0, helpers_js_1.getTypeName)(v) === (0, helpers_js_1.getTypeName)(type))) {
38
+ value.push(type);
39
+ }
40
+ }
41
+ else {
42
+ this.registry.set(tname, [type]);
43
+ }
44
+ }
45
+ }
46
+ hasRegisteredType(source, type, parent) {
47
+ const sourceName = (0, helpers_js_1.getTypeName)(source);
48
+ const targetName = (0, helpers_js_1.getTypeName)(type);
49
+ if (this.registry.has(sourceName)) {
50
+ return this.registry.get(sourceName).find((s) => s.name === targetName) !== undefined;
51
+ }
52
+ else if (parent && this.container.Parent) {
53
+ return this.container.Parent.hasRegisteredType(source, type, parent);
54
+ }
55
+ return false;
56
+ }
57
+ getTypes(service, parent = true) {
58
+ if (!service) {
59
+ throw new exceptions_1.InvalidArgument('argument "service" cannot be null or empty');
60
+ }
61
+ const name = (0, helpers_js_1.getTypeName)(service);
62
+ if (this.registry.has(name)) {
63
+ return this.registry.get(name);
64
+ }
65
+ if (this.container.Parent && parent) {
66
+ return this.container.Parent.getRegisteredTypes(service, parent);
67
+ }
68
+ return null;
69
+ }
70
+ hasRegistered(service, parent = true) {
71
+ if (this.registry.has((0, helpers_js_1.getTypeName)(service))) {
72
+ return true;
73
+ }
74
+ else if (parent && this.container.Parent) {
75
+ return this.container.Parent.hasRegistered(service, parent);
76
+ }
77
+ return false;
78
+ }
79
+ }
80
+ exports.Registry = Registry;
81
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/root.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.child = exports.checkType = exports.check = exports.has = exports.getRegisteredTypes = exports.get = exports.resolve = exports.uncache = exports.unregister = exports.register = exports.dispose = exports.clearCache = exports.clearRegistry = exports.clear = exports.eventNames = exports.prependOnceListener = exports.prependListener = exports.listenerCount = exports.emit = exports.rawListeners = exports.listeners = exports.getMaxListeners = exports.setMaxListeners = exports.removeAllListeners = exports.off = exports.removeListener = exports.once = exports.addListener = exports.on = exports.RootContainer = void 0;
4
+ const container_js_1 = require("./container.js");
5
+ /**
6
+ * App main DI container
7
+ */
8
+ exports.RootContainer = new container_js_1.Container();
9
+ /***
10
+ * EVENT LISTENER STUFF
11
+ *
12
+ * Allows to use event listener stuff on root container
13
+ */
14
+ function on(event, listener) {
15
+ return exports.RootContainer.on(event, listener);
16
+ }
17
+ exports.on = on;
18
+ function addListener(event, listener) {
19
+ return exports.RootContainer.addListener(event, listener);
20
+ }
21
+ exports.addListener = addListener;
22
+ function once(event, listener) {
23
+ return exports.RootContainer.once(event, listener);
24
+ }
25
+ exports.once = once;
26
+ function removeListener(event, listener) {
27
+ return exports.RootContainer.removeListener(event, listener);
28
+ }
29
+ exports.removeListener = removeListener;
30
+ function off(event, listener) {
31
+ return exports.RootContainer.off(event, listener);
32
+ }
33
+ exports.off = off;
34
+ function removeAllListeners(event) {
35
+ return exports.RootContainer.removeAllListeners(event);
36
+ }
37
+ exports.removeAllListeners = removeAllListeners;
38
+ function setMaxListeners(n) {
39
+ return exports.RootContainer.setMaxListeners(n);
40
+ }
41
+ exports.setMaxListeners = setMaxListeners;
42
+ function getMaxListeners() {
43
+ return exports.RootContainer.getMaxListeners();
44
+ }
45
+ exports.getMaxListeners = getMaxListeners;
46
+ function listeners(event) {
47
+ return exports.RootContainer.listeners(event);
48
+ }
49
+ exports.listeners = listeners;
50
+ function rawListeners(event) {
51
+ return exports.RootContainer.rawListeners(event);
52
+ }
53
+ exports.rawListeners = rawListeners;
54
+ function emit(event, ...args) {
55
+ return exports.RootContainer.emit(event, ...args);
56
+ }
57
+ exports.emit = emit;
58
+ function listenerCount(type) {
59
+ return exports.RootContainer.listenerCount(type);
60
+ }
61
+ exports.listenerCount = listenerCount;
62
+ function prependListener(event, listener) {
63
+ return exports.RootContainer.prependListener(event, listener);
64
+ }
65
+ exports.prependListener = prependListener;
66
+ function prependOnceListener(event, listener) {
67
+ return exports.RootContainer.prependOnceListener(event, listener);
68
+ }
69
+ exports.prependOnceListener = prependOnceListener;
70
+ function eventNames() {
71
+ return exports.RootContainer.eventNames();
72
+ }
73
+ exports.eventNames = eventNames;
74
+ /**
75
+ * ===========================================================================
76
+ */
77
+ /**
78
+ * Clears root container registry and cache.
79
+ */
80
+ function clear() {
81
+ exports.RootContainer.clearCache();
82
+ exports.RootContainer.clearRegistry();
83
+ }
84
+ exports.clear = clear;
85
+ /**
86
+ * Clears out root registry ( registered types in root container )
87
+ */
88
+ function clearRegistry() {
89
+ exports.RootContainer.clearRegistry();
90
+ }
91
+ exports.clearRegistry = clearRegistry;
92
+ /**
93
+ * Cleart ous root cache ( all resolved types )
94
+ */
95
+ function clearCache() {
96
+ exports.RootContainer.clearCache();
97
+ }
98
+ exports.clearCache = clearCache;
99
+ async function dispose() {
100
+ await exports.RootContainer.dispose();
101
+ }
102
+ exports.dispose = dispose;
103
+ /**
104
+ * Register class/interface to DI root container. If
105
+ * @param type - interface object to register
106
+ * @throws {@link InvalidArgument} if type is null or undefined
107
+ */
108
+ function register(type) {
109
+ return exports.RootContainer.register(type);
110
+ }
111
+ exports.register = register;
112
+ function unregister(type) {
113
+ exports.RootContainer.unregister(type);
114
+ }
115
+ exports.unregister = unregister;
116
+ function uncache(type, parent) {
117
+ exports.RootContainer.uncache(type, parent);
118
+ }
119
+ exports.uncache = uncache;
120
+ function resolve(type, options, check) {
121
+ return exports.RootContainer.resolve(type, options, check);
122
+ }
123
+ exports.resolve = resolve;
124
+ function get(serviceName) {
125
+ return exports.RootContainer.get(serviceName);
126
+ }
127
+ exports.get = get;
128
+ /**
129
+ *
130
+ * Returns list of types registered at given type, eg. all types/services registered under BaseService
131
+ *
132
+ * @param type - base type to check
133
+ */
134
+ function getRegisteredTypes(type) {
135
+ return exports.RootContainer.getRegisteredTypes(type);
136
+ }
137
+ exports.getRegisteredTypes = getRegisteredTypes;
138
+ /**
139
+ * Checks if service is already resolved and exists in container cache.
140
+ * NOTE: check is only valid for classes that are singletons.
141
+ *
142
+ * @param service - service name or class to check
143
+ */
144
+ function has(service) {
145
+ return exports.RootContainer.isResolved(service);
146
+ }
147
+ exports.has = has;
148
+ /**
149
+ * Checks if service is registered in container.
150
+ *
151
+ * @param service - service class object to check
152
+ */
153
+ function check(service) {
154
+ return exports.RootContainer.hasRegistered(service);
155
+ }
156
+ exports.check = check;
157
+ /**
158
+ * Checks if specific service is registered in container.
159
+ * Eg. we can have multiple drivers registered for queue connections with different protocol implementations
160
+ * and we want to check if specific driver is registered
161
+ *
162
+ * @param source - source class to check ( eg. base class )
163
+ * @param type - specific type to check eg. base class implementation
164
+ */
165
+ function checkType(source, type) {
166
+ return exports.RootContainer.hasRegisteredType(source, type);
167
+ }
168
+ exports.checkType = checkType;
169
+ /**
170
+ * Creates child DI container.
171
+ *
172
+ */
173
+ function child() {
174
+ return exports.RootContainer.child();
175
+ }
176
+ exports.child = child;
177
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/root.ts"],"names":[],"mappings":";;;AAAA,iDAA2C;AAK3C;;GAEG;AACU,QAAA,aAAa,GAAe,IAAI,wBAAS,EAAE,CAAC;AAEzD;;;;GAIG;AAEH,SAAgB,EAAE,CAAC,KAAa,EAAE,QAAsC;IACtE,OAAO,qBAAa,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAFD,gBAEC;AACD,SAAgB,WAAW,CAAC,KAAsB,EAAE,QAAsC;IACxF,OAAO,qBAAa,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC;AAFD,kCAEC;AACD,SAAgB,IAAI,CAAC,KAAsB,EAAE,QAAsC;IACjF,OAAO,qBAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAFD,oBAEC;AACD,SAAgB,cAAc,CAAC,KAAsB,EAAE,QAAsC;IAC3F,OAAO,qBAAa,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAFD,wCAEC;AACD,SAAgB,GAAG,CAAC,KAAsB,EAAE,QAAsC;IAChF,OAAO,qBAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAFD,kBAEC;AACD,SAAgB,kBAAkB,CAAC,KAAuB;IACxD,OAAO,qBAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAFD,gDAEC;AACD,SAAgB,eAAe,CAAC,CAAS;IACvC,OAAO,qBAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,0CAEC;AACD,SAAgB,eAAe;IAC7B,OAAO,qBAAa,CAAC,eAAe,EAAE,CAAC;AACzC,CAAC;AAFD,0CAEC;AACD,SAAgB,SAAS,CAAC,KAAsB;IAC9C,OAAO,qBAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAFD,8BAEC;AACD,SAAgB,YAAY,CAAC,KAAsB;IACjD,OAAO,qBAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAFD,oCAEC;AACD,SAAgB,IAAI,CAAC,KAAsB,EAAE,GAAG,IAAe;IAC7D,OAAO,qBAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5C,CAAC;AAFD,oBAEC;AACD,SAAgB,aAAa,CAAC,IAAqB;IACjD,OAAO,qBAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAFD,sCAEC;AACD,SAAgB,eAAe,CAAC,KAAsB,EAAE,QAAsC;IAC5F,OAAO,qBAAa,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAFD,0CAEC;AACD,SAAgB,mBAAmB,CAAC,KAAsB,EAAE,QAAsC;IAChG,OAAO,qBAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAFD,kDAEC;AACD,SAAgB,UAAU;IACxB,OAAO,qBAAa,CAAC,UAAU,EAAE,CAAC;AACpC,CAAC;AAFD,gCAEC;AAED;;GAEG;AAEH;;GAEG;AACH,SAAgB,KAAK;IACnB,qBAAa,CAAC,UAAU,EAAE,CAAC;IAC3B,qBAAa,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC;AAHD,sBAGC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,qBAAa,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC;AAFD,sCAEC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,qBAAa,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAFD,gCAEC;AAEM,KAAK,UAAU,OAAO;IAC3B,MAAM,qBAAa,CAAC,OAAO,EAAE,CAAC;AAChC,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAI,IAA8C;IACxE,OAAO,qBAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAFD,4BAEC;AAED,SAAgB,UAAU,CAAI,IAAuD;IACnF,qBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAFD,gCAEC;AAED,SAAgB,OAAO,CAAI,IAAuC,EAAE,MAAgB;IAClF,qBAAa,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAFD,0BAEC;AAgBD,SAAgB,OAAO,CAAI,IAAuC,EAAE,OAA6B,EAAE,KAAe;IAChH,OAAO,qBAAa,CAAC,OAAO,CAAI,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAFD,0BAEC;AASD,SAAgB,GAAG,CAAI,WAA8C;IACnE,OAAO,qBAAa,CAAC,GAAG,CAAC,WAAW,CAAM,CAAC;AAC7C,CAAC;AAFD,kBAEC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,IAAuB;IAC3D,OAAO,qBAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAFD,gDAEC;AAED;;;;;GAKG;AACH,SAAgB,GAAG,CAAI,OAA0B;IAC/C,OAAO,qBAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAFD,kBAEC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CAAI,OAA0B;IACjD,OAAO,qBAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAFD,sBAEC;AAED;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAI,MAA6C,EAAE,IAAgD;IAC1H,OAAO,qBAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,KAAK;IACnB,OAAO,qBAAa,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC;AAFD,sBAEC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,GAAG;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACvD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { Class } from './types.js';
2
+ declare global {
3
+ interface ArrayConstructor {
4
+ ofType<T>(type: Class<T> | string): TypedArray<T>;
5
+ }
6
+ }
7
+ export declare class TypedArray<R> extends Array<R> {
8
+ Type: Class<R> | string;
9
+ constructor(Type: Class<R> | string);
10
+ }
11
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,gBAAgB;QACxB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;KACnD;CACF;AACD,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;gBAAvB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;CAG3C"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/array.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,UAAc,SAAQ,KAAQ;IACzC,YAAmB,IAAuB;QACxC,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAmB;IAE1C,CAAC;CACF;AAED,KAAK,CAAC,MAAM,GAAG,UAAa,IAAuB;IACjD,OAAO,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { IBind, IContainer, ResolvableObject } from './interfaces.js';
2
+ import { Class, Factory } from './types.js';
3
+ export declare class Binder<T> implements IBind {
4
+ private implementation;
5
+ private container;
6
+ private isFactory;
7
+ private isConstructor;
8
+ constructor(implementation: Class<T> | Factory<T> | ResolvableObject, container: IContainer);
9
+ as<T>(type: string | Class<T>): this;
10
+ /**
11
+ * Add plain value to container. If value exists, it overrides content in container cache
12
+ *
13
+ * @param type - name of added value
14
+ * @param override - if true, any value registered before is overriden by new one
15
+ * @returns
16
+ */
17
+ asValue(type: string, override?: boolean): this;
18
+ /**
19
+ *
20
+ * Add plain value to container, value is stored in hashmap for quick access
21
+ * eg. we have multiple value converters and we wanc o(1) access, instead searching for
22
+ * converter for specific type
23
+ *
24
+ * @param type - name of added value
25
+ * @param key - hashmap key
26
+ */
27
+ asMapValue(type: string, key: string): this;
28
+ /**
29
+ * Register type as itself. Usefull when we also want to register type as self instead of base class
30
+ * so we can retrieve just this specific instance.
31
+ * @returns this
32
+ */
33
+ asSelf(): this;
34
+ /**
35
+ * Mark type as SingleInstance resolve strategy.
36
+ * @returns this
37
+ */
38
+ singleInstance(): this;
39
+ }
40
+ //# sourceMappingURL=binder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAqB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5C,qBAAa,MAAM,CAAC,CAAC,CAAE,YAAW,KAAK;IAIzB,OAAO,CAAC,cAAc;IAA4C,OAAO,CAAC,SAAS;IAH/F,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,aAAa,CAAU;gBAEX,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAU,SAAS,EAAE,UAAU;IAK3G,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAYpC;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAc7C;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAoBpC;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAad;;;OAGG;IACH,cAAc,IAAI,IAAI;CASvB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binder.js","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGrE,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,OAAO,MAAM;IAIjB,YAAoB,cAAwD,EAAU,SAAqB;QAAvF,mBAAc,GAAd,cAAc,CAA0C;QAAU,cAAS,GAAT,SAAS,CAAY;QACzG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,EAAE,CAAI,IAAuB;QAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAGnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;QACpC,IAAI,QAAQ,EAAE;YACZ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACnC;SACF;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAY,EAAE,GAAW;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAkB,CAAC;SAC1D;aAAM;YACL,GAAG,GAAG,IAAI,GAAG,EAAe,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACrC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAGlC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;YACzC,MAAM,IAAI,aAAa,CAAC,mCAAmC,CAAC,CAAC;SAC9D;QAED,sDAAsD;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAElF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzC,MAAM,IAAI,aAAa,CAAC,4CAA4C,CAAC,CAAC;SACvE;aAAM;YACL,MAAM,UAAU,GAA+B,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAgC,CAAC,CAAC;YACzH,UAAU,CAAC,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { TypedArray } from './array.js';
2
+ import { IContainer } from './interfaces.js';
3
+ import { Class } from './types.js';
4
+ export declare class ContainerCache {
5
+ private container;
6
+ private cache;
7
+ constructor(container: IContainer);
8
+ [Symbol.iterator](): Generator<{
9
+ key: string;
10
+ value: any;
11
+ }, void, unknown>;
12
+ remove(key: string | Class<any> | TypedArray<any>, parent?: boolean): void;
13
+ add(key: string | Class<any> | object, instance: any): void;
14
+ has(key: string | Class<any> | object | TypedArray<any>, parent?: boolean): boolean;
15
+ get(key: string | Class<any> | TypedArray<any>, parent?: boolean): any;
16
+ clear(): void;
17
+ }
18
+ //# sourceMappingURL=container-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-cache.d.ts","sourceRoot":"","sources":["../../src/container-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,cAAc;IAGb,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,KAAK,CAAqB;gBAEd,SAAS,EAAE,UAAU;IAQxC,CAAC,MAAM,CAAC,QAAQ,CAAC;;;;IAQX,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ1E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG;IAYpD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAYnF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,GAAG;IActE,KAAK;CAIb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-cache.js","sourceRoot":"","sources":["../../src/container-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,OAAO,cAAc;IAGzB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QAEtC,yBAAyB;QACzB,uCAAuC;QACvC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACrC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;gBACrB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aACzB;SACF;IACH,CAAC;IAEM,MAAM,CAAC,GAA0C,EAAE,MAAgB;QACxE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACpC;IACH,CAAC;IAEM,GAAG,CAAC,GAAiC,EAAE,QAAa;QACzD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;SACF;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,GAAG,CAAC,GAAmD,EAAE,MAAgB;QAC9E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,GAAG,CAAC,GAA0C,EAAE,MAAgB;QACrE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/container.ts"],"names":[],"mappings":"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"}