@venizia/ignis-inversion 0.0.6 → 0.1.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 (198) hide show
  1. package/README.md +18 -18
  2. package/dist/cjs/binding/binding.d.ts +32 -0
  3. package/dist/cjs/binding/binding.d.ts.map +1 -0
  4. package/dist/cjs/binding/binding.js +114 -0
  5. package/dist/cjs/binding/binding.js.map +1 -0
  6. package/dist/cjs/binding/common/constants.d.ts +19 -0
  7. package/dist/cjs/binding/common/constants.d.ts.map +1 -0
  8. package/dist/cjs/binding/common/constants.js +37 -0
  9. package/dist/cjs/binding/common/constants.js.map +1 -0
  10. package/dist/cjs/binding/common/index.d.ts +3 -0
  11. package/dist/cjs/binding/common/index.d.ts.map +1 -0
  12. package/dist/cjs/binding/common/index.js +19 -0
  13. package/dist/cjs/binding/common/index.js.map +1 -0
  14. package/dist/cjs/binding/common/types.d.ts +28 -0
  15. package/dist/cjs/binding/common/types.d.ts.map +1 -0
  16. package/dist/cjs/binding/common/types.js +8 -0
  17. package/dist/cjs/binding/common/types.js.map +1 -0
  18. package/dist/cjs/binding/index.d.ts +3 -0
  19. package/dist/cjs/binding/index.d.ts.map +1 -0
  20. package/dist/cjs/binding/index.js +19 -0
  21. package/dist/cjs/binding/index.js.map +1 -0
  22. package/dist/cjs/common/app-error.d.ts.map +1 -1
  23. package/dist/cjs/common/app-error.js +6 -1
  24. package/dist/cjs/common/app-error.js.map +1 -1
  25. package/dist/cjs/common/index.d.ts +0 -1
  26. package/dist/cjs/common/index.d.ts.map +1 -1
  27. package/dist/cjs/common/index.js +0 -1
  28. package/dist/cjs/common/index.js.map +1 -1
  29. package/dist/cjs/common/types.d.ts +14 -38
  30. package/dist/cjs/common/types.d.ts.map +1 -1
  31. package/dist/cjs/common/types.js +18 -44
  32. package/dist/cjs/common/types.js.map +1 -1
  33. package/dist/cjs/container/abstract.d.ts +71 -0
  34. package/dist/cjs/container/abstract.d.ts.map +1 -0
  35. package/dist/cjs/container/abstract.js +17 -0
  36. package/dist/cjs/container/abstract.js.map +1 -0
  37. package/dist/cjs/container/base.d.ts +69 -0
  38. package/dist/cjs/container/base.d.ts.map +1 -0
  39. package/dist/cjs/container/base.js +117 -0
  40. package/dist/cjs/container/base.js.map +1 -0
  41. package/dist/cjs/container/common/index.d.ts +2 -0
  42. package/dist/cjs/container/common/index.d.ts.map +1 -0
  43. package/dist/cjs/container/common/index.js +18 -0
  44. package/dist/cjs/container/common/index.js.map +1 -0
  45. package/dist/cjs/container/common/types.d.ts +60 -0
  46. package/dist/cjs/container/common/types.d.ts.map +1 -0
  47. package/dist/cjs/container/common/types.js +3 -0
  48. package/dist/cjs/container/common/types.js.map +1 -0
  49. package/dist/cjs/container/container.d.ts +10 -0
  50. package/dist/cjs/container/container.d.ts.map +1 -0
  51. package/dist/cjs/container/container.js +45 -0
  52. package/dist/cjs/container/container.js.map +1 -0
  53. package/dist/cjs/container/index.d.ts +5 -0
  54. package/dist/cjs/container/index.d.ts.map +1 -0
  55. package/dist/cjs/container/index.js +21 -0
  56. package/dist/cjs/container/index.js.map +1 -0
  57. package/dist/cjs/index.d.ts +1 -0
  58. package/dist/cjs/index.d.ts.map +1 -1
  59. package/dist/cjs/index.js +1 -0
  60. package/dist/cjs/index.js.map +1 -1
  61. package/dist/cjs/{common/keys.d.ts → metadata/common/constants.d.ts} +1 -1
  62. package/dist/cjs/metadata/common/constants.d.ts.map +1 -0
  63. package/dist/cjs/{common/keys.js → metadata/common/constants.js} +1 -1
  64. package/dist/cjs/metadata/common/constants.js.map +1 -0
  65. package/dist/cjs/metadata/common/index.d.ts +2 -0
  66. package/dist/cjs/metadata/common/index.d.ts.map +1 -0
  67. package/dist/cjs/metadata/common/index.js +18 -0
  68. package/dist/cjs/metadata/common/index.js.map +1 -0
  69. package/dist/cjs/metadata/index.d.ts +1 -0
  70. package/dist/cjs/metadata/index.d.ts.map +1 -1
  71. package/dist/cjs/metadata/index.js +1 -0
  72. package/dist/cjs/metadata/index.js.map +1 -1
  73. package/dist/cjs/metadata/injectors.d.ts +3 -2
  74. package/dist/cjs/metadata/injectors.d.ts.map +1 -1
  75. package/dist/cjs/metadata/injectors.js.map +1 -1
  76. package/dist/cjs/registry/common/index.d.ts +2 -0
  77. package/dist/cjs/registry/common/index.d.ts.map +1 -0
  78. package/dist/cjs/registry/common/index.js +18 -0
  79. package/dist/cjs/registry/common/index.js.map +1 -0
  80. package/dist/cjs/registry/common/types.d.ts +17 -0
  81. package/dist/cjs/registry/common/types.d.ts.map +1 -0
  82. package/dist/cjs/registry/common/types.js +3 -0
  83. package/dist/cjs/registry/common/types.js.map +1 -0
  84. package/dist/cjs/registry/index.d.ts +3 -0
  85. package/dist/cjs/registry/index.d.ts.map +1 -0
  86. package/dist/cjs/registry/index.js +19 -0
  87. package/dist/cjs/registry/index.js.map +1 -0
  88. package/dist/{esm → cjs/registry}/registry.d.ts +8 -7
  89. package/dist/cjs/registry/registry.d.ts.map +1 -0
  90. package/dist/cjs/{registry.js → registry/registry.js} +11 -13
  91. package/dist/cjs/registry/registry.js.map +1 -0
  92. package/dist/esm/binding/binding.d.ts +32 -0
  93. package/dist/esm/binding/binding.d.ts.map +1 -0
  94. package/dist/esm/binding/binding.js +110 -0
  95. package/dist/esm/binding/binding.js.map +1 -0
  96. package/dist/esm/binding/common/constants.d.ts +19 -0
  97. package/dist/esm/binding/common/constants.d.ts.map +1 -0
  98. package/dist/esm/binding/common/constants.js +28 -0
  99. package/dist/esm/binding/common/constants.js.map +1 -0
  100. package/dist/esm/binding/common/index.d.ts +3 -0
  101. package/dist/esm/binding/common/index.d.ts.map +1 -0
  102. package/dist/esm/binding/common/index.js +3 -0
  103. package/dist/esm/binding/common/index.js.map +1 -0
  104. package/dist/esm/binding/common/types.d.ts +28 -0
  105. package/dist/esm/binding/common/types.d.ts.map +1 -0
  106. package/dist/esm/binding/common/types.js +4 -0
  107. package/dist/esm/binding/common/types.js.map +1 -0
  108. package/dist/esm/binding/index.d.ts +3 -0
  109. package/dist/esm/binding/index.d.ts.map +1 -0
  110. package/dist/esm/binding/index.js +3 -0
  111. package/dist/esm/binding/index.js.map +1 -0
  112. package/dist/esm/common/app-error.d.ts.map +1 -1
  113. package/dist/esm/common/app-error.js +3 -1
  114. package/dist/esm/common/app-error.js.map +1 -1
  115. package/dist/esm/common/index.d.ts +0 -1
  116. package/dist/esm/common/index.d.ts.map +1 -1
  117. package/dist/esm/common/index.js +0 -1
  118. package/dist/esm/common/index.js.map +1 -1
  119. package/dist/esm/common/types.d.ts +14 -38
  120. package/dist/esm/common/types.d.ts.map +1 -1
  121. package/dist/esm/common/types.js +17 -35
  122. package/dist/esm/common/types.js.map +1 -1
  123. package/dist/esm/container/abstract.d.ts +71 -0
  124. package/dist/esm/container/abstract.d.ts.map +1 -0
  125. package/dist/esm/container/abstract.js +13 -0
  126. package/dist/esm/container/abstract.js.map +1 -0
  127. package/dist/esm/container/base.d.ts +69 -0
  128. package/dist/esm/container/base.d.ts.map +1 -0
  129. package/dist/esm/container/base.js +113 -0
  130. package/dist/esm/container/base.js.map +1 -0
  131. package/dist/esm/container/common/index.d.ts +2 -0
  132. package/dist/esm/container/common/index.d.ts.map +1 -0
  133. package/dist/esm/container/common/index.js +2 -0
  134. package/dist/esm/container/common/index.js.map +1 -0
  135. package/dist/esm/container/common/types.d.ts +60 -0
  136. package/dist/esm/container/common/types.d.ts.map +1 -0
  137. package/dist/esm/container/common/types.js +2 -0
  138. package/dist/esm/container/common/types.js.map +1 -0
  139. package/dist/esm/container/container.d.ts +10 -0
  140. package/dist/esm/container/container.d.ts.map +1 -0
  141. package/dist/esm/container/container.js +41 -0
  142. package/dist/esm/container/container.js.map +1 -0
  143. package/dist/esm/container/index.d.ts +5 -0
  144. package/dist/esm/container/index.d.ts.map +1 -0
  145. package/dist/esm/container/index.js +5 -0
  146. package/dist/esm/container/index.js.map +1 -0
  147. package/dist/esm/index.d.ts +1 -0
  148. package/dist/esm/index.d.ts.map +1 -1
  149. package/dist/esm/index.js +1 -0
  150. package/dist/esm/index.js.map +1 -1
  151. package/dist/esm/{common/keys.d.ts → metadata/common/constants.d.ts} +1 -1
  152. package/dist/esm/metadata/common/constants.d.ts.map +1 -0
  153. package/dist/esm/{common/keys.js → metadata/common/constants.js} +1 -1
  154. package/dist/esm/metadata/common/constants.js.map +1 -0
  155. package/dist/esm/metadata/common/index.d.ts +2 -0
  156. package/dist/esm/metadata/common/index.d.ts.map +1 -0
  157. package/dist/esm/metadata/common/index.js +2 -0
  158. package/dist/esm/metadata/common/index.js.map +1 -0
  159. package/dist/esm/metadata/index.d.ts +1 -0
  160. package/dist/esm/metadata/index.d.ts.map +1 -1
  161. package/dist/esm/metadata/index.js +1 -0
  162. package/dist/esm/metadata/index.js.map +1 -1
  163. package/dist/esm/metadata/injectors.d.ts +3 -2
  164. package/dist/esm/metadata/injectors.d.ts.map +1 -1
  165. package/dist/esm/metadata/injectors.js.map +1 -1
  166. package/dist/esm/registry/common/index.d.ts +2 -0
  167. package/dist/esm/registry/common/index.d.ts.map +1 -0
  168. package/dist/esm/registry/common/index.js +2 -0
  169. package/dist/esm/registry/common/index.js.map +1 -0
  170. package/dist/esm/registry/common/types.d.ts +17 -0
  171. package/dist/esm/registry/common/types.d.ts.map +1 -0
  172. package/dist/esm/registry/common/types.js +2 -0
  173. package/dist/esm/registry/common/types.js.map +1 -0
  174. package/dist/esm/registry/index.d.ts +3 -0
  175. package/dist/esm/registry/index.d.ts.map +1 -0
  176. package/dist/esm/registry/index.js +3 -0
  177. package/dist/esm/registry/index.js.map +1 -0
  178. package/dist/{cjs → esm/registry}/registry.d.ts +8 -7
  179. package/dist/esm/registry/registry.d.ts.map +1 -0
  180. package/dist/esm/{registry.js → registry/registry.js} +5 -7
  181. package/dist/esm/registry/registry.js.map +1 -0
  182. package/package.json +5 -5
  183. package/dist/cjs/common/keys.d.ts.map +0 -1
  184. package/dist/cjs/common/keys.js.map +0 -1
  185. package/dist/cjs/container.d.ts +0 -89
  186. package/dist/cjs/container.d.ts.map +0 -1
  187. package/dist/cjs/container.js +0 -245
  188. package/dist/cjs/container.js.map +0 -1
  189. package/dist/cjs/registry.d.ts.map +0 -1
  190. package/dist/cjs/registry.js.map +0 -1
  191. package/dist/esm/common/keys.d.ts.map +0 -1
  192. package/dist/esm/common/keys.js.map +0 -1
  193. package/dist/esm/container.d.ts +0 -89
  194. package/dist/esm/container.d.ts.map +0 -1
  195. package/dist/esm/container.js +0 -240
  196. package/dist/esm/container.js.map +0 -1
  197. package/dist/esm/registry.d.ts.map +0 -1
  198. package/dist/esm/registry.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  export * from './app-error';
2
2
  export * from './base-helper';
3
- export * from './keys';
4
3
  export * from './logger';
5
4
  export * from './types';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,6 +1,5 @@
1
1
  export * from './app-error';
2
2
  export * from './base-helper';
3
- export * from './keys';
4
3
  export * from './logger';
5
4
  export * from './types';
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,4 +1,3 @@
1
- import { Container } from './../container';
2
1
  export type TNullable<T> = T | undefined | null;
3
2
  export type ValueOrPromise<T> = T | Promise<T>;
4
3
  export type ValueOf<T> = T[keyof T];
@@ -8,45 +7,22 @@ export type TClass<T> = TConstructor<T> & {
8
7
  [property: string]: any;
9
8
  };
10
9
  export type TConstValue<T extends TClass<any>> = Extract<ValueOf<T>, string | number>;
11
- export interface IProvider<T> {
12
- value(container: Container): T;
13
- }
10
+ export type TBindingKey = string | symbol;
11
+ /**
12
+ * The single predicate that tells a CONSTRUCTOR from a RESOLVER. Everything downstream branches on
13
+ * it: the boot booters (is this export an artifact?), the controller factories and `resolveValue`
14
+ * (`isClass(entity) ? entity : entity()`).
15
+ *
16
+ * `typeof x === 'function' && x.prototype !== undefined` is not enough - it is true of EVERY
17
+ * non-arrow function, so a helper exported next to an artifact got bound and `new`-ed, and a
18
+ * `function () { return User; }` resolver was returned instead of being called.
19
+ *
20
+ * The source check is sound because the whole toolchain targets ES2024: a class is emitted as
21
+ * `class`, never as an ES5 constructor function. A consumer bundling this package down to ES5 would
22
+ * break the predicate.
23
+ */
14
24
  export declare const isClass: <T>(target: any) => target is TClass<T>;
15
- export declare const isClassProvider: <T>(target: any) => target is TClass<IProvider<T>>;
16
- /** Distinguishes class constructors from arrow/regular functions via named prototype. */
17
- export declare const isClassConstructor: (fn: Function) => boolean;
18
- export declare class BindingScopes {
19
- static readonly SINGLETON = "singleton";
20
- static readonly TRANSIENT = "transient";
21
- }
22
- export type TBindingScope = TConstValue<typeof BindingScopes>;
23
- export declare class BindingValueTypes {
24
- static readonly CLASS = "class";
25
- static readonly VALUE = "value";
26
- static readonly PROVIDER = "provider";
27
- }
28
- export type TBindingValueType = TConstValue<typeof BindingValueTypes>;
29
25
  export interface IBindingTag {
30
26
  [name: string]: any;
31
27
  }
32
- export declare class BindingKeys {
33
- static build(opts: {
34
- namespace: string;
35
- key: string;
36
- }): string;
37
- }
38
- export interface IPropertyMetadata {
39
- bindingKey: string | symbol;
40
- isOptional?: boolean;
41
- [key: string]: any;
42
- }
43
- export interface IInjectMetadata {
44
- key: string | symbol;
45
- index: number;
46
- isOptional?: boolean;
47
- }
48
- export interface IInjectableMetadata {
49
- scope?: TBindingScope;
50
- tags?: Record<string, any>;
51
- }
52
28
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtF,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAE1D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAI7E,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,GAAI,IAAI,QAAQ,KAAG,OAEjD,CAAC;AAEF,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IACxC,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;CACzC;AACD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC;AAE9D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;CACvC;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAED,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAgBtD;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAM1D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB"}
@@ -1,38 +1,20 @@
1
- import isEmpty from 'lodash/isEmpty';
2
- import { getError } from './app-error';
1
+ /**
2
+ * The single predicate that tells a CONSTRUCTOR from a RESOLVER. Everything downstream branches on
3
+ * it: the boot booters (is this export an artifact?), the controller factories and `resolveValue`
4
+ * (`isClass(entity) ? entity : entity()`).
5
+ *
6
+ * `typeof x === 'function' && x.prototype !== undefined` is not enough - it is true of EVERY
7
+ * non-arrow function, so a helper exported next to an artifact got bound and `new`-ed, and a
8
+ * `function () { return User; }` resolver was returned instead of being called.
9
+ *
10
+ * The source check is sound because the whole toolchain targets ES2024: a class is emitted as
11
+ * `class`, never as an ES5 constructor function. A consumer bundling this package down to ES5 would
12
+ * break the predicate.
13
+ */
3
14
  export const isClass = (target) => {
4
- return typeof target === 'function' && target.prototype !== undefined;
5
- };
6
- export const isClassProvider = (target) => {
7
- return (typeof target === 'function' && target.prototype && typeof target.prototype.value === 'function');
8
- };
9
- /** Distinguishes class constructors from arrow/regular functions via named prototype. */
10
- export const isClassConstructor = (fn) => {
11
- return !!fn.prototype?.constructor?.name;
12
- };
13
- export class BindingScopes {
14
- static { this.SINGLETON = 'singleton'; }
15
- static { this.TRANSIENT = 'transient'; }
16
- }
17
- export class BindingValueTypes {
18
- static { this.CLASS = 'class'; }
19
- static { this.VALUE = 'value'; }
20
- static { this.PROVIDER = 'provider'; }
21
- }
22
- export class BindingKeys {
23
- static build(opts) {
24
- const { namespace, key } = opts;
25
- const keyParts = [];
26
- if (!isEmpty(namespace)) {
27
- keyParts.push(namespace);
28
- }
29
- if (isEmpty(key)) {
30
- throw getError({
31
- message: `[BindingKeys][build] Invalid key to build | key: ${key}`,
32
- });
33
- }
34
- keyParts.push(key);
35
- return keyParts.join('.');
15
+ if (typeof target !== 'function' || target.prototype === undefined) {
16
+ return false;
36
17
  }
37
- }
18
+ return /^class[\s{]/.test(Function.prototype.toString.call(target));
19
+ };
38
20
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiBvC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,MAAW,EAAuB,EAAE;IAC7D,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,MAAW,EAAkC,EAAE;IAChF,OAAO,CACL,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CACjG,CAAC;AACJ,CAAC,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAY,EAAW,EAAE;IAC1D,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,OAAO,aAAa;aACR,cAAS,GAAG,WAAW,CAAC;aACxB,cAAS,GAAG,WAAW,CAAC;;AAI1C,MAAM,OAAO,iBAAiB;aACZ,UAAK,GAAG,OAAO,CAAC;aAChB,UAAK,GAAG,OAAO,CAAC;aAChB,aAAQ,GAAG,UAAU,CAAC;;AASxC,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,IAAwC;QACnD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,QAAQ,CAAC;gBACb,OAAO,EAAE,oDAAoD,GAAG,EAAE;aACnE,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,MAAW,EAAuB,EAAE;IAC7D,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import type { IBinding } from '../binding/common/types';
2
+ import { BaseHelper } from '../common/base-helper';
3
+ import type { TBindingKey, TClass, TNullable } from '../common/types';
4
+ import type { MetadataRegistry } from '../registry/registry';
5
+ import type { IContainer } from './common/types';
6
+ /**
7
+ * The container CONTRACT as a class: every member abstract, typed against the scope contracts
8
+ * (`IBinding`, not the concrete `Binding`). A container implementation that shares nothing with
9
+ * the shipped storage - a remote container, a read-only snapshot - starts here; one that only
10
+ * varies RESOLUTION starts at `BaseContainer`.
11
+ */
12
+ export declare abstract class AbstractContainer extends BaseHelper implements IContainer {
13
+ constructor(opts?: {
14
+ scope: string;
15
+ });
16
+ abstract getMetadataRegistry(): MetadataRegistry;
17
+ abstract bind<T>(opts: {
18
+ key: TBindingKey;
19
+ }): IBinding<T>;
20
+ abstract isBound(opts: {
21
+ key: TBindingKey;
22
+ }): boolean;
23
+ abstract getBinding<T>(opts: {
24
+ key: TBindingKey | {
25
+ namespace: string;
26
+ key: string;
27
+ };
28
+ }): TNullable<IBinding<T>>;
29
+ abstract unbind(opts: {
30
+ key: TBindingKey;
31
+ }): boolean;
32
+ abstract set<T>(opts: {
33
+ binding: IBinding<T>;
34
+ }): void;
35
+ abstract get<T>(opts: {
36
+ key: TBindingKey | {
37
+ namespace: string;
38
+ key: string;
39
+ };
40
+ isOptional?: false;
41
+ }): T;
42
+ abstract get<T>(opts: {
43
+ key: TBindingKey | {
44
+ namespace: string;
45
+ key: string;
46
+ };
47
+ isOptional?: boolean;
48
+ }): T | undefined;
49
+ abstract gets<T extends unknown[]>(opts: {
50
+ bindings: {
51
+ [K in keyof T]: {
52
+ key: TBindingKey | {
53
+ namespace: string;
54
+ key: string;
55
+ };
56
+ isOptional?: boolean;
57
+ };
58
+ };
59
+ }): {
60
+ [K in keyof T]: T[K] | undefined;
61
+ };
62
+ abstract resolve<T>(cls: TClass<T>): T;
63
+ abstract instantiate<T>(cls: TClass<T>): T;
64
+ abstract findByTag<T = any>(opts: {
65
+ tag: string;
66
+ exclude?: Array<string> | Set<string>;
67
+ }): IBinding<T>[];
68
+ abstract clear(): void;
69
+ abstract reset(): void;
70
+ }
71
+ //# sourceMappingURL=abstract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../src/container/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,8BAAsB,iBAAkB,SAAQ,UAAW,YAAW,UAAU;gBAClE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAIpC,QAAQ,CAAC,mBAAmB,IAAI,gBAAgB;IAEhD,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IACrD,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;QAC3B,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IACpD,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,IAAI;IAErD,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,KAAK,CAAC;KACpB,GAAG,CAAC;IACL,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,CAAC,GAAG,SAAS;IACjB,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE;QACvC,QAAQ,EAAE;aACP,CAAC,IAAI,MAAM,CAAC,GAAG;gBACd,GAAG,EAAE,WAAW,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACtD,UAAU,CAAC,EAAE,OAAO,CAAC;aACtB;SACF,CAAC;KACH,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;KAAE;IAExC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1C,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;KACvC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;IACjB,QAAQ,CAAC,KAAK,IAAI,IAAI;IACtB,QAAQ,CAAC,KAAK,IAAI,IAAI;CACvB"}
@@ -0,0 +1,13 @@
1
+ import { BaseHelper } from '../common/base-helper';
2
+ /**
3
+ * The container CONTRACT as a class: every member abstract, typed against the scope contracts
4
+ * (`IBinding`, not the concrete `Binding`). A container implementation that shares nothing with
5
+ * the shipped storage - a remote container, a read-only snapshot - starts here; one that only
6
+ * varies RESOLUTION starts at `BaseContainer`.
7
+ */
8
+ export class AbstractContainer extends BaseHelper {
9
+ constructor(opts) {
10
+ super({ scope: opts?.scope ?? AbstractContainer.name });
11
+ }
12
+ }
13
+ //# sourceMappingURL=abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/container/abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKnD;;;;;GAKG;AACH,MAAM,OAAgB,iBAAkB,SAAQ,UAAU;IACxD,YAAY,IAAwB;QAClC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;CAsCF"}
@@ -0,0 +1,69 @@
1
+ import { Binding } from '../binding/binding';
2
+ import { TBindingKey, TClass, TNullable } from '../common/types';
3
+ import { AbstractContainer } from './abstract';
4
+ /**
5
+ * Storage half of the container: binding registration, lookup, tag scan and lifecycle, all keyed by
6
+ * the normalized string form of a binding key, over the shipped `Binding`. Resolution
7
+ * (`instantiate`) is the part a container implementation may want to swap, so it stays abstract
8
+ * here - a second container version varies that strategy without re-earning the storage plumbing.
9
+ */
10
+ export declare abstract class BaseContainer extends AbstractContainer {
11
+ protected bindings: Map<string, Binding<any>>;
12
+ constructor(opts?: {
13
+ scope: string;
14
+ });
15
+ getMetadataRegistry(): import("..").MetadataRegistry;
16
+ bind<T>(opts: {
17
+ key: TBindingKey;
18
+ }): Binding<T>;
19
+ isBound(opts: {
20
+ key: TBindingKey;
21
+ }): boolean;
22
+ getBinding<T>(opts: {
23
+ key: TBindingKey | {
24
+ namespace: string;
25
+ key: string;
26
+ };
27
+ }): TNullable<Binding<T>>;
28
+ unbind(opts: {
29
+ key: TBindingKey;
30
+ }): boolean;
31
+ set<T>(opts: {
32
+ binding: Binding<T>;
33
+ }): void;
34
+ get<T>(opts: {
35
+ key: TBindingKey | {
36
+ namespace: string;
37
+ key: string;
38
+ };
39
+ isOptional?: false;
40
+ }): T;
41
+ get<T>(opts: {
42
+ key: TBindingKey | {
43
+ namespace: string;
44
+ key: string;
45
+ };
46
+ isOptional?: boolean;
47
+ }): T | undefined;
48
+ gets<T extends unknown[]>(opts: {
49
+ bindings: {
50
+ [K in keyof T]: {
51
+ key: TBindingKey | {
52
+ namespace: string;
53
+ key: string;
54
+ };
55
+ isOptional?: boolean;
56
+ };
57
+ };
58
+ }): {
59
+ [K in keyof T]: T[K] | undefined;
60
+ };
61
+ resolve<T>(cls: TClass<T>): T;
62
+ findByTag<T = any>(opts: {
63
+ tag: string;
64
+ exclude?: Array<string> | Set<string>;
65
+ }): Binding<T>[];
66
+ clear(): void;
67
+ reset(): void;
68
+ }
69
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/container/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,8BAAsB,aAAc,SAAQ,iBAAiB;IAC3D,SAAS,CAAC,QAAQ,4BAA8B;gBAEpC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAI3B,mBAAmB;IAInB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ/C,OAAO,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAM5C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;QAC3B,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IA2BhB,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAK3C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,IAAI;IAK3C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,KAAK,CAAC;KACpB,GAAG,CAAC;IACI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,CAAC,GAAG,SAAS;IAqBR,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE;QACvC,QAAQ,EAAE;aACP,CAAC,IAAI,MAAM,CAAC,GAAG;gBACd,GAAG,EAAE,WAAW,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACtD,UAAU,CAAC,EAAE,OAAO,CAAC;aACtB;SACF,CAAC;KACH,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;KAAE;IAM/B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAI7B,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;KACvC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE;IA2BP,KAAK,IAAI,IAAI;IAOb,KAAK,IAAI,IAAI;CAGvB"}
@@ -0,0 +1,113 @@
1
+ import { Binding } from '../binding/binding';
2
+ import { BindingKeys } from '../binding/common/constants';
3
+ import { getError } from '../common/app-error';
4
+ import { metadataRegistry } from '../registry/registry';
5
+ import { AbstractContainer } from './abstract';
6
+ /**
7
+ * Storage half of the container: binding registration, lookup, tag scan and lifecycle, all keyed by
8
+ * the normalized string form of a binding key, over the shipped `Binding`. Resolution
9
+ * (`instantiate`) is the part a container implementation may want to swap, so it stays abstract
10
+ * here - a second container version varies that strategy without re-earning the storage plumbing.
11
+ */
12
+ export class BaseContainer extends AbstractContainer {
13
+ constructor(opts) {
14
+ super({ scope: opts?.scope ?? BaseContainer.name });
15
+ this.bindings = new Map();
16
+ }
17
+ getMetadataRegistry() {
18
+ return metadataRegistry;
19
+ }
20
+ bind(opts) {
21
+ const { key } = opts;
22
+ const keyStr = String(key);
23
+ const binding = new Binding({ key: keyStr });
24
+ this.bindings.set(keyStr, binding);
25
+ return binding;
26
+ }
27
+ isBound(opts) {
28
+ const { key } = opts;
29
+ const keyStr = String(key);
30
+ return this.bindings.has(keyStr);
31
+ }
32
+ getBinding(opts) {
33
+ let key;
34
+ switch (typeof opts.key) {
35
+ case 'string': {
36
+ key = opts.key;
37
+ break;
38
+ }
39
+ case 'symbol': {
40
+ key = opts.key.toString();
41
+ break;
42
+ }
43
+ case 'object': {
44
+ key = BindingKeys.build(opts.key);
45
+ break;
46
+ }
47
+ default: {
48
+ throw getError({
49
+ message: `[getBinding] Invalid binding key type | opts: ${opts.key} | allowed: [string, symbol, { namespace: string, key: string }]`,
50
+ });
51
+ }
52
+ }
53
+ const binding = this.bindings.get(key);
54
+ return binding;
55
+ }
56
+ unbind(opts) {
57
+ const key = String(opts.key);
58
+ return this.bindings.delete(key);
59
+ }
60
+ set(opts) {
61
+ const { binding } = opts;
62
+ this.bindings.set(binding.key, binding);
63
+ }
64
+ get(opts) {
65
+ const { key, isOptional = false } = opts;
66
+ const binding = this.getBinding({ key });
67
+ if (binding) {
68
+ return binding.getValue(this);
69
+ }
70
+ if (!isOptional) {
71
+ throw getError({
72
+ message: `Binding key: ${opts.key.toString()} is not bounded in context!`,
73
+ });
74
+ }
75
+ return undefined;
76
+ }
77
+ gets(opts) {
78
+ return opts.bindings.map(opt => this.get({ ...opt, isOptional: true }));
79
+ }
80
+ resolve(cls) {
81
+ return this.instantiate(cls);
82
+ }
83
+ findByTag(opts) {
84
+ const { tag, exclude } = opts;
85
+ const rs = [];
86
+ const bindings = this.bindings.values();
87
+ for (const binding of bindings) {
88
+ if (!binding.hasTag(tag)) {
89
+ continue;
90
+ }
91
+ if (exclude) {
92
+ if (exclude instanceof Array && exclude.length > 0 && exclude.includes(binding.key)) {
93
+ continue;
94
+ }
95
+ if (exclude instanceof Set && exclude.size > 0 && exclude.has(binding.key)) {
96
+ continue;
97
+ }
98
+ }
99
+ rs.push(binding);
100
+ }
101
+ return rs;
102
+ }
103
+ clear() {
104
+ const bindings = this.bindings.values();
105
+ for (const binding of bindings) {
106
+ binding.clearCache();
107
+ }
108
+ }
109
+ reset() {
110
+ this.bindings.clear();
111
+ }
112
+ }
113
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/container/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/container/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/container/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,60 @@
1
+ import type { IBinding } from '../../binding/common/types';
2
+ import type { TBindingKey, TClass, TNullable } from '../../common/types';
3
+ import type { MetadataRegistry } from '../../registry/registry';
4
+ export interface IContainer {
5
+ getMetadataRegistry(): MetadataRegistry;
6
+ bind<T>(opts: {
7
+ key: TBindingKey;
8
+ }): IBinding<T>;
9
+ isBound(opts: {
10
+ key: TBindingKey;
11
+ }): boolean;
12
+ getBinding<T>(opts: {
13
+ key: TBindingKey | {
14
+ namespace: string;
15
+ key: string;
16
+ };
17
+ }): TNullable<IBinding<T>>;
18
+ unbind(opts: {
19
+ key: TBindingKey;
20
+ }): boolean;
21
+ set<T>(opts: {
22
+ binding: IBinding<T>;
23
+ }): void;
24
+ get<T>(opts: {
25
+ key: TBindingKey | {
26
+ namespace: string;
27
+ key: string;
28
+ };
29
+ isOptional?: false;
30
+ }): T;
31
+ get<T>(opts: {
32
+ key: TBindingKey | {
33
+ namespace: string;
34
+ key: string;
35
+ };
36
+ isOptional?: boolean;
37
+ }): T | undefined;
38
+ gets<T extends unknown[]>(opts: {
39
+ bindings: {
40
+ [K in keyof T]: {
41
+ key: TBindingKey | {
42
+ namespace: string;
43
+ key: string;
44
+ };
45
+ isOptional?: boolean;
46
+ };
47
+ };
48
+ }): {
49
+ [K in keyof T]: T[K] | undefined;
50
+ };
51
+ resolve<T>(cls: TClass<T>): T;
52
+ instantiate<T>(cls: TClass<T>): T;
53
+ findByTag<T = any>(opts: {
54
+ tag: string;
55
+ exclude?: Array<string> | Set<string>;
56
+ }): IBinding<T>[];
57
+ clear(): void;
58
+ reset(): void;
59
+ }
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/container/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,mBAAmB,IAAI,gBAAgB,CAAC;IAExC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;IAC7C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;QAClB,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAE7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,CAAC,CAAC;IAC/F,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QACX,GAAG,EAAE,WAAW,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,CAAC,GAAG,SAAS,CAAC;IAClB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE;QAC9B,QAAQ,EAAE;aACP,CAAC,IAAI,MAAM,CAAC,GAAG;gBACd,GAAG,EAAE,WAAW,GAAG;oBAAE,SAAS,EAAE,MAAM,CAAC;oBAAC,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACtD,UAAU,CAAC,EAAE,OAAO,CAAC;aACtB;SACF,CAAC;KACH,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;KAAE,CAAC;IAEzC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9B,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAElC,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/container/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { TClass } from '../common/types';
2
+ import { BaseContainer } from './base';
3
+ /** Default container: constructor + property injection driven by the decorator metadata registry. */
4
+ export declare class Container extends BaseContainer {
5
+ constructor(opts?: {
6
+ scope: string;
7
+ });
8
+ instantiate<T>(cls: TClass<T>): T;
9
+ }
10
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/container/container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,qGAAqG;AACrG,qBAAa,SAAU,SAAQ,aAAa;gBAC9B,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAI3B,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;CA0C3C"}
@@ -0,0 +1,41 @@
1
+ import { getError } from '../common/app-error';
2
+ import { BaseContainer } from './base';
3
+ /** Default container: constructor + property injection driven by the decorator metadata registry. */
4
+ export class Container extends BaseContainer {
5
+ constructor(opts) {
6
+ super({ scope: opts?.scope ?? Container.name });
7
+ }
8
+ instantiate(cls) {
9
+ const registry = this.getMetadataRegistry();
10
+ const injectMetadata = registry.getInjectMetadata({
11
+ target: cls,
12
+ });
13
+ const args = [];
14
+ for (let index = 0; index < (injectMetadata?.length ?? 0); index++) {
15
+ const meta = injectMetadata?.[index];
16
+ if (!meta) {
17
+ throw getError({
18
+ message: `[${cls.name}] Constructor parameter ${index} has no @inject | Every parameter of a container-instantiated class must be decorated - the container cannot supply an undecorated one`,
19
+ });
20
+ }
21
+ args[meta.index] = this.get({ key: meta.key, isOptional: meta.isOptional ?? false });
22
+ }
23
+ const instance = new cls(...args);
24
+ const propertyMetadata = registry.getPropertiesMetadata({
25
+ target: instance,
26
+ });
27
+ if (!propertyMetadata?.size) {
28
+ return instance;
29
+ }
30
+ const properties = propertyMetadata.entries();
31
+ for (const [propertyKey, metadata] of properties) {
32
+ const dep = this.get({
33
+ key: metadata.bindingKey,
34
+ isOptional: metadata.optional ?? false,
35
+ });
36
+ instance[propertyKey] = dep;
37
+ }
38
+ return instance;
39
+ }
40
+ }
41
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/container/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,qGAAqG;AACrG,MAAM,OAAO,SAAU,SAAQ,aAAa;IAC1C,YAAY,IAAwB;QAClC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAEQ,WAAW,CAAI,GAAc;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE5C,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YAChD,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QAEH,MAAM,IAAI,GAAU,EAAE,CAAC;QAEvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;YAErC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,QAAQ,CAAC;oBACb,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,2BAA2B,KAAK,wIAAwI;iBAC9L,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAElC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;YACtD,MAAM,EAAE,QAAkB;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnB,GAAG,EAAE,QAAQ,CAAC,UAAU;gBACxB,UAAU,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;aACvC,CAAC,CAAC;YACF,QAAgB,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACvC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export * from './abstract';
2
+ export * from './base';
3
+ export * from './common';
4
+ export * from './container';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/container/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './abstract';
2
+ export * from './base';
3
+ export * from './common';
4
+ export * from './container';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/container/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ export * from './binding';
2
3
  export * from './common';
3
4
  export * from './container';
4
5
  export * from './metadata';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}