@venizia/ignis-inversion 0.0.7-0 → 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 (197) hide show
  1. package/dist/cjs/binding/binding.d.ts +32 -0
  2. package/dist/cjs/binding/binding.d.ts.map +1 -0
  3. package/dist/cjs/binding/binding.js +114 -0
  4. package/dist/cjs/binding/binding.js.map +1 -0
  5. package/dist/cjs/binding/common/constants.d.ts +19 -0
  6. package/dist/cjs/binding/common/constants.d.ts.map +1 -0
  7. package/dist/cjs/binding/common/constants.js +37 -0
  8. package/dist/cjs/binding/common/constants.js.map +1 -0
  9. package/dist/cjs/binding/common/index.d.ts +3 -0
  10. package/dist/cjs/binding/common/index.d.ts.map +1 -0
  11. package/dist/cjs/binding/common/index.js +19 -0
  12. package/dist/cjs/binding/common/index.js.map +1 -0
  13. package/dist/cjs/binding/common/types.d.ts +28 -0
  14. package/dist/cjs/binding/common/types.d.ts.map +1 -0
  15. package/dist/cjs/binding/common/types.js +8 -0
  16. package/dist/cjs/binding/common/types.js.map +1 -0
  17. package/dist/cjs/binding/index.d.ts +3 -0
  18. package/dist/cjs/binding/index.d.ts.map +1 -0
  19. package/dist/cjs/binding/index.js +19 -0
  20. package/dist/cjs/binding/index.js.map +1 -0
  21. package/dist/cjs/common/app-error.d.ts.map +1 -1
  22. package/dist/cjs/common/app-error.js +6 -1
  23. package/dist/cjs/common/app-error.js.map +1 -1
  24. package/dist/cjs/common/index.d.ts +0 -1
  25. package/dist/cjs/common/index.d.ts.map +1 -1
  26. package/dist/cjs/common/index.js +0 -1
  27. package/dist/cjs/common/index.js.map +1 -1
  28. package/dist/cjs/common/types.d.ts +14 -38
  29. package/dist/cjs/common/types.d.ts.map +1 -1
  30. package/dist/cjs/common/types.js +18 -44
  31. package/dist/cjs/common/types.js.map +1 -1
  32. package/dist/cjs/container/abstract.d.ts +71 -0
  33. package/dist/cjs/container/abstract.d.ts.map +1 -0
  34. package/dist/cjs/container/abstract.js +17 -0
  35. package/dist/cjs/container/abstract.js.map +1 -0
  36. package/dist/cjs/container/base.d.ts +69 -0
  37. package/dist/cjs/container/base.d.ts.map +1 -0
  38. package/dist/cjs/container/base.js +117 -0
  39. package/dist/cjs/container/base.js.map +1 -0
  40. package/dist/cjs/container/common/index.d.ts +2 -0
  41. package/dist/cjs/container/common/index.d.ts.map +1 -0
  42. package/dist/cjs/container/common/index.js +18 -0
  43. package/dist/cjs/container/common/index.js.map +1 -0
  44. package/dist/cjs/container/common/types.d.ts +60 -0
  45. package/dist/cjs/container/common/types.d.ts.map +1 -0
  46. package/dist/cjs/container/common/types.js +3 -0
  47. package/dist/cjs/container/common/types.js.map +1 -0
  48. package/dist/cjs/container/container.d.ts +10 -0
  49. package/dist/cjs/container/container.d.ts.map +1 -0
  50. package/dist/cjs/container/container.js +45 -0
  51. package/dist/cjs/container/container.js.map +1 -0
  52. package/dist/cjs/container/index.d.ts +5 -0
  53. package/dist/cjs/container/index.d.ts.map +1 -0
  54. package/dist/cjs/container/index.js +21 -0
  55. package/dist/cjs/container/index.js.map +1 -0
  56. package/dist/cjs/index.d.ts +1 -0
  57. package/dist/cjs/index.d.ts.map +1 -1
  58. package/dist/cjs/index.js +1 -0
  59. package/dist/cjs/index.js.map +1 -1
  60. package/dist/cjs/{common/keys.d.ts → metadata/common/constants.d.ts} +1 -1
  61. package/dist/cjs/metadata/common/constants.d.ts.map +1 -0
  62. package/dist/cjs/{common/keys.js → metadata/common/constants.js} +1 -1
  63. package/dist/cjs/metadata/common/constants.js.map +1 -0
  64. package/dist/cjs/metadata/common/index.d.ts +2 -0
  65. package/dist/cjs/metadata/common/index.d.ts.map +1 -0
  66. package/dist/cjs/metadata/common/index.js +18 -0
  67. package/dist/cjs/metadata/common/index.js.map +1 -0
  68. package/dist/cjs/metadata/index.d.ts +1 -0
  69. package/dist/cjs/metadata/index.d.ts.map +1 -1
  70. package/dist/cjs/metadata/index.js +1 -0
  71. package/dist/cjs/metadata/index.js.map +1 -1
  72. package/dist/cjs/metadata/injectors.d.ts +3 -2
  73. package/dist/cjs/metadata/injectors.d.ts.map +1 -1
  74. package/dist/cjs/metadata/injectors.js.map +1 -1
  75. package/dist/cjs/registry/common/index.d.ts +2 -0
  76. package/dist/cjs/registry/common/index.d.ts.map +1 -0
  77. package/dist/cjs/registry/common/index.js +18 -0
  78. package/dist/cjs/registry/common/index.js.map +1 -0
  79. package/dist/cjs/registry/common/types.d.ts +17 -0
  80. package/dist/cjs/registry/common/types.d.ts.map +1 -0
  81. package/dist/cjs/registry/common/types.js +3 -0
  82. package/dist/cjs/registry/common/types.js.map +1 -0
  83. package/dist/cjs/registry/index.d.ts +3 -0
  84. package/dist/cjs/registry/index.d.ts.map +1 -0
  85. package/dist/cjs/registry/index.js +19 -0
  86. package/dist/cjs/registry/index.js.map +1 -0
  87. package/dist/{esm → cjs/registry}/registry.d.ts +8 -7
  88. package/dist/cjs/registry/registry.d.ts.map +1 -0
  89. package/dist/cjs/{registry.js → registry/registry.js} +11 -13
  90. package/dist/cjs/registry/registry.js.map +1 -0
  91. package/dist/esm/binding/binding.d.ts +32 -0
  92. package/dist/esm/binding/binding.d.ts.map +1 -0
  93. package/dist/esm/binding/binding.js +110 -0
  94. package/dist/esm/binding/binding.js.map +1 -0
  95. package/dist/esm/binding/common/constants.d.ts +19 -0
  96. package/dist/esm/binding/common/constants.d.ts.map +1 -0
  97. package/dist/esm/binding/common/constants.js +28 -0
  98. package/dist/esm/binding/common/constants.js.map +1 -0
  99. package/dist/esm/binding/common/index.d.ts +3 -0
  100. package/dist/esm/binding/common/index.d.ts.map +1 -0
  101. package/dist/esm/binding/common/index.js +3 -0
  102. package/dist/esm/binding/common/index.js.map +1 -0
  103. package/dist/esm/binding/common/types.d.ts +28 -0
  104. package/dist/esm/binding/common/types.d.ts.map +1 -0
  105. package/dist/esm/binding/common/types.js +4 -0
  106. package/dist/esm/binding/common/types.js.map +1 -0
  107. package/dist/esm/binding/index.d.ts +3 -0
  108. package/dist/esm/binding/index.d.ts.map +1 -0
  109. package/dist/esm/binding/index.js +3 -0
  110. package/dist/esm/binding/index.js.map +1 -0
  111. package/dist/esm/common/app-error.d.ts.map +1 -1
  112. package/dist/esm/common/app-error.js +3 -1
  113. package/dist/esm/common/app-error.js.map +1 -1
  114. package/dist/esm/common/index.d.ts +0 -1
  115. package/dist/esm/common/index.d.ts.map +1 -1
  116. package/dist/esm/common/index.js +0 -1
  117. package/dist/esm/common/index.js.map +1 -1
  118. package/dist/esm/common/types.d.ts +14 -38
  119. package/dist/esm/common/types.d.ts.map +1 -1
  120. package/dist/esm/common/types.js +17 -35
  121. package/dist/esm/common/types.js.map +1 -1
  122. package/dist/esm/container/abstract.d.ts +71 -0
  123. package/dist/esm/container/abstract.d.ts.map +1 -0
  124. package/dist/esm/container/abstract.js +13 -0
  125. package/dist/esm/container/abstract.js.map +1 -0
  126. package/dist/esm/container/base.d.ts +69 -0
  127. package/dist/esm/container/base.d.ts.map +1 -0
  128. package/dist/esm/container/base.js +113 -0
  129. package/dist/esm/container/base.js.map +1 -0
  130. package/dist/esm/container/common/index.d.ts +2 -0
  131. package/dist/esm/container/common/index.d.ts.map +1 -0
  132. package/dist/esm/container/common/index.js +2 -0
  133. package/dist/esm/container/common/index.js.map +1 -0
  134. package/dist/esm/container/common/types.d.ts +60 -0
  135. package/dist/esm/container/common/types.d.ts.map +1 -0
  136. package/dist/esm/container/common/types.js +2 -0
  137. package/dist/esm/container/common/types.js.map +1 -0
  138. package/dist/esm/container/container.d.ts +10 -0
  139. package/dist/esm/container/container.d.ts.map +1 -0
  140. package/dist/esm/container/container.js +41 -0
  141. package/dist/esm/container/container.js.map +1 -0
  142. package/dist/esm/container/index.d.ts +5 -0
  143. package/dist/esm/container/index.d.ts.map +1 -0
  144. package/dist/esm/container/index.js +5 -0
  145. package/dist/esm/container/index.js.map +1 -0
  146. package/dist/esm/index.d.ts +1 -0
  147. package/dist/esm/index.d.ts.map +1 -1
  148. package/dist/esm/index.js +1 -0
  149. package/dist/esm/index.js.map +1 -1
  150. package/dist/esm/{common/keys.d.ts → metadata/common/constants.d.ts} +1 -1
  151. package/dist/esm/metadata/common/constants.d.ts.map +1 -0
  152. package/dist/esm/{common/keys.js → metadata/common/constants.js} +1 -1
  153. package/dist/esm/metadata/common/constants.js.map +1 -0
  154. package/dist/esm/metadata/common/index.d.ts +2 -0
  155. package/dist/esm/metadata/common/index.d.ts.map +1 -0
  156. package/dist/esm/metadata/common/index.js +2 -0
  157. package/dist/esm/metadata/common/index.js.map +1 -0
  158. package/dist/esm/metadata/index.d.ts +1 -0
  159. package/dist/esm/metadata/index.d.ts.map +1 -1
  160. package/dist/esm/metadata/index.js +1 -0
  161. package/dist/esm/metadata/index.js.map +1 -1
  162. package/dist/esm/metadata/injectors.d.ts +3 -2
  163. package/dist/esm/metadata/injectors.d.ts.map +1 -1
  164. package/dist/esm/metadata/injectors.js.map +1 -1
  165. package/dist/esm/registry/common/index.d.ts +2 -0
  166. package/dist/esm/registry/common/index.d.ts.map +1 -0
  167. package/dist/esm/registry/common/index.js +2 -0
  168. package/dist/esm/registry/common/index.js.map +1 -0
  169. package/dist/esm/registry/common/types.d.ts +17 -0
  170. package/dist/esm/registry/common/types.d.ts.map +1 -0
  171. package/dist/esm/registry/common/types.js +2 -0
  172. package/dist/esm/registry/common/types.js.map +1 -0
  173. package/dist/esm/registry/index.d.ts +3 -0
  174. package/dist/esm/registry/index.d.ts.map +1 -0
  175. package/dist/esm/registry/index.js +3 -0
  176. package/dist/esm/registry/index.js.map +1 -0
  177. package/dist/{cjs → esm/registry}/registry.d.ts +8 -7
  178. package/dist/esm/registry/registry.d.ts.map +1 -0
  179. package/dist/esm/{registry.js → registry/registry.js} +5 -7
  180. package/dist/esm/registry/registry.js.map +1 -0
  181. package/package.json +5 -5
  182. package/dist/cjs/common/keys.d.ts.map +0 -1
  183. package/dist/cjs/common/keys.js.map +0 -1
  184. package/dist/cjs/container.d.ts +0 -89
  185. package/dist/cjs/container.d.ts.map +0 -1
  186. package/dist/cjs/container.js +0 -245
  187. package/dist/cjs/container.js.map +0 -1
  188. package/dist/cjs/registry.d.ts.map +0 -1
  189. package/dist/cjs/registry.js.map +0 -1
  190. package/dist/esm/common/keys.d.ts.map +0 -1
  191. package/dist/esm/common/keys.js.map +0 -1
  192. package/dist/esm/container.d.ts +0 -89
  193. package/dist/esm/container.d.ts.map +0 -1
  194. package/dist/esm/container.js +0 -240
  195. package/dist/esm/container.js.map +0 -1
  196. package/dist/esm/registry.d.ts.map +0 -1
  197. package/dist/esm/registry.js.map +0 -1
@@ -0,0 +1,32 @@
1
+ import { BaseHelper } from '../common/base-helper';
2
+ import { TClass, TConstValue } from '../common/types';
3
+ import type { IContainer } from '../container/common/types';
4
+ import { BindingValueTypes, TBindingScope } from './common/constants';
5
+ import { IBinding, TBindingProvider, TBindingResolverValue } from './common/types';
6
+ export declare class Binding<T = any> extends BaseHelper implements IBinding<T> {
7
+ key: string;
8
+ private bindScope;
9
+ private tags;
10
+ private cached?;
11
+ private resolver;
12
+ constructor(opts: {
13
+ key: string;
14
+ });
15
+ static bind<T = any>(opts: {
16
+ key: string;
17
+ }): Binding<T>;
18
+ toClass(value: TClass<T>): this;
19
+ toValue(value: T): this;
20
+ toProvider(value: TBindingProvider<T>): this;
21
+ getBindingMeta(opts: {
22
+ type: TConstValue<typeof BindingValueTypes>;
23
+ }): TBindingResolverValue<T>;
24
+ setScope(scope: TBindingScope): this;
25
+ setTags(...tags: string[]): this;
26
+ hasTag(tag: string): boolean;
27
+ getTags(): string[];
28
+ getScope(): TBindingScope;
29
+ getValue(container?: IContainer): T;
30
+ clearCache(): void;
31
+ }
32
+ //# sourceMappingURL=binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../../src/binding/binding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAiB,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAmB,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEpG,qBAAa,OAAO,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,UAAW,YAAW,QAAQ,CAAC,CAAC,CAAC;IACrE,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAI;IAEnB,OAAO,CAAC,QAAQ,CAG4D;gBAEhE,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;WAajB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAK/B,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAKvB,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAK5C,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;KAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAU/F,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKpC,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAKhC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,OAAO,IAAI,MAAM,EAAE;IAInB,QAAQ,IAAI,aAAa;IAIzB,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,CAAC;IAuDnC,UAAU;CAOX"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Binding = void 0;
4
+ const app_error_1 = require("../common/app-error");
5
+ const base_helper_1 = require("../common/base-helper");
6
+ const constants_1 = require("./common/constants");
7
+ const types_1 = require("./common/types");
8
+ class Binding extends base_helper_1.BaseHelper {
9
+ constructor(opts) {
10
+ super({ scope: opts.key });
11
+ this.bindScope = constants_1.BindingScopes.TRANSIENT;
12
+ this.tags = new Set([]);
13
+ this.key = opts.key;
14
+ const keyParts = this.key.split('.');
15
+ if (keyParts.length > 1) {
16
+ const [namespace] = keyParts;
17
+ this.setTags(namespace);
18
+ }
19
+ }
20
+ static bind(opts) {
21
+ return new Binding(opts);
22
+ }
23
+ toClass(value) {
24
+ this.resolver = { type: constants_1.BindingValueTypes.CLASS, value };
25
+ return this;
26
+ }
27
+ toValue(value) {
28
+ this.resolver = { type: constants_1.BindingValueTypes.VALUE, value };
29
+ return this;
30
+ }
31
+ toProvider(value) {
32
+ this.resolver = { type: constants_1.BindingValueTypes.PROVIDER, value };
33
+ return this;
34
+ }
35
+ getBindingMeta(opts) {
36
+ if (this.resolver.type !== opts.type) {
37
+ throw (0, app_error_1.getError)({
38
+ message: `[getBindingMeta] Invalid resolver type, only ${this.resolver.type} is allowd | resolverType: ${this.resolver.type} | optType: ${opts.type}`,
39
+ });
40
+ }
41
+ return this.resolver.value;
42
+ }
43
+ setScope(scope) {
44
+ this.bindScope = scope;
45
+ return this;
46
+ }
47
+ setTags(...tags) {
48
+ tags.forEach(t => this.tags.add(t));
49
+ return this;
50
+ }
51
+ hasTag(tag) {
52
+ return this.tags.has(tag);
53
+ }
54
+ getTags() {
55
+ return Array.from(this.tags);
56
+ }
57
+ getScope() {
58
+ return this.bindScope;
59
+ }
60
+ getValue(container) {
61
+ if (this.bindScope === constants_1.BindingScopes.SINGLETON && this.cached !== undefined) {
62
+ return this.cached;
63
+ }
64
+ let instance;
65
+ const { type: resolverType } = this.resolver;
66
+ switch (resolverType) {
67
+ case constants_1.BindingValueTypes.VALUE: {
68
+ instance = this.resolver.value;
69
+ break;
70
+ }
71
+ case constants_1.BindingValueTypes.PROVIDER: {
72
+ const provider = this.resolver.value;
73
+ if (!container) {
74
+ throw (0, app_error_1.getError)({
75
+ message: `[getValue] Invalid context/container to get provider value | type: ${resolverType} | key: ${this.key}`,
76
+ });
77
+ }
78
+ if (!(0, types_1.isClassProvider)(provider)) {
79
+ instance = provider(container);
80
+ break;
81
+ }
82
+ const p = container.instantiate(provider);
83
+ instance = p.value(container);
84
+ break;
85
+ }
86
+ case constants_1.BindingValueTypes.CLASS: {
87
+ if (!container) {
88
+ throw (0, app_error_1.getError)({
89
+ message: `[getValue] Invalid context/container to instantiate class | type: ${resolverType} | key: ${this.key}`,
90
+ });
91
+ }
92
+ instance = container.instantiate(this.resolver.value);
93
+ break;
94
+ }
95
+ default: {
96
+ throw (0, app_error_1.getError)({
97
+ message: `[getValue] Invalid value type | valueType: ${resolverType}`,
98
+ });
99
+ }
100
+ }
101
+ if (this.bindScope === constants_1.BindingScopes.SINGLETON) {
102
+ this.cached = instance;
103
+ }
104
+ return instance;
105
+ }
106
+ clearCache() {
107
+ if (!this.cached) {
108
+ return;
109
+ }
110
+ this.cached = undefined;
111
+ }
112
+ }
113
+ exports.Binding = Binding;
114
+ //# sourceMappingURL=binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.js","sourceRoot":"","sources":["../../../src/binding/binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TConstValue } from '../../common/types';
2
+ export declare class BindingScopes {
3
+ static readonly SINGLETON = "singleton";
4
+ static readonly TRANSIENT = "transient";
5
+ }
6
+ export type TBindingScope = TConstValue<typeof BindingScopes>;
7
+ export declare class BindingValueTypes {
8
+ static readonly CLASS = "class";
9
+ static readonly VALUE = "value";
10
+ static readonly PROVIDER = "provider";
11
+ }
12
+ export type TBindingValueType = TConstValue<typeof BindingValueTypes>;
13
+ export declare class BindingKeys {
14
+ static build(opts: {
15
+ namespace: string;
16
+ key: string;
17
+ }): string;
18
+ }
19
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/binding/common/constants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,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;AACD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEtE,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAgBtD"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BindingKeys = exports.BindingValueTypes = exports.BindingScopes = void 0;
7
+ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
8
+ const app_error_1 = require("../../common/app-error");
9
+ class BindingScopes {
10
+ static { this.SINGLETON = 'singleton'; }
11
+ static { this.TRANSIENT = 'transient'; }
12
+ }
13
+ exports.BindingScopes = BindingScopes;
14
+ class BindingValueTypes {
15
+ static { this.CLASS = 'class'; }
16
+ static { this.VALUE = 'value'; }
17
+ static { this.PROVIDER = 'provider'; }
18
+ }
19
+ exports.BindingValueTypes = BindingValueTypes;
20
+ class BindingKeys {
21
+ static build(opts) {
22
+ const { namespace, key } = opts;
23
+ const keyParts = [];
24
+ if (!(0, isEmpty_1.default)(namespace)) {
25
+ keyParts.push(namespace);
26
+ }
27
+ if ((0, isEmpty_1.default)(key)) {
28
+ throw (0, app_error_1.getError)({
29
+ message: `[BindingKeys][build] Invalid key to build | key: ${key}`,
30
+ });
31
+ }
32
+ keyParts.push(key);
33
+ return keyParts.join('.');
34
+ }
35
+ }
36
+ exports.BindingKeys = BindingKeys;
37
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/binding/common/constants.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AACrC,sDAAkD;AAGlD,MAAa,aAAa;aACR,cAAS,GAAG,WAAW,CAAC;aACxB,cAAS,GAAG,WAAW,CAAC;;AAF1C,sCAGC;AAGD,MAAa,iBAAiB;aACZ,UAAK,GAAG,OAAO,CAAC;aAChB,UAAK,GAAG,OAAO,CAAC;aAChB,aAAQ,GAAG,UAAU,CAAC;;AAHxC,8CAIC;AAGD,MAAa,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,IAAA,iBAAO,EAAC,SAAS,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAA,oBAAQ,EAAC;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;AAjBD,kCAiBC"}
@@ -0,0 +1,3 @@
1
+ export * from './constants';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/binding/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/binding/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB"}
@@ -0,0 +1,28 @@
1
+ import type { IContainer } from '../../container/common/types';
2
+ import { TClass, TConstValue } from '../../common/types';
3
+ import type { BindingValueTypes, TBindingScope } from './constants';
4
+ export interface IProvider<T> {
5
+ value(container: IContainer): T;
6
+ }
7
+ export declare const isClassProvider: <T>(target: any) => target is TClass<IProvider<T>>;
8
+ export type TBindingProvider<T> = (<C extends IContainer>(container: C) => T) | TClass<IProvider<T>>;
9
+ /** What a binding's resolver holds - a class, a plain value, or a provider. */
10
+ export type TBindingResolverValue<T> = TClass<T> | T | TBindingProvider<T>;
11
+ export interface IBinding<T = any> {
12
+ /** Normalized at construction - a symbol key arrives here as its string form. */
13
+ key: string;
14
+ toClass(value: TClass<T>): this;
15
+ toValue(value: T): this;
16
+ toProvider(value: TBindingProvider<T>): this;
17
+ getBindingMeta(opts: {
18
+ type: TConstValue<typeof BindingValueTypes>;
19
+ }): TBindingResolverValue<T>;
20
+ setScope(scope: TBindingScope): this;
21
+ getScope(): TBindingScope;
22
+ setTags(...tags: string[]): this;
23
+ hasTag(tag: string): boolean;
24
+ getTags(): string[];
25
+ getValue(container?: IContainer): T;
26
+ clearCache(): void;
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/binding/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAI7E,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC5B,CAAC,CAAC,CAAC,SAAS,UAAU,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC/B,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7C,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;KAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAEhG,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,aAAa,CAAC;IAC1B,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,OAAO,IAAI,MAAM,EAAE,CAAC;IAEpB,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC;IACpC,UAAU,IAAI,IAAI,CAAC;CACpB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isClassProvider = void 0;
4
+ const isClassProvider = (target) => {
5
+ return (typeof target === 'function' && target.prototype && typeof target.prototype.value === 'function');
6
+ };
7
+ exports.isClassProvider = isClassProvider;
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/binding/common/types.ts"],"names":[],"mappings":";;;AAQO,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;AAJW,QAAA,eAAe,mBAI1B"}
@@ -0,0 +1,3 @@
1
+ export * from './binding';
2
+ export * from './common';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/binding/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./binding"), exports);
18
+ __exportStar(require("./common"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/binding/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../src/common/app-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW;;;;;8BAOJ,CAAC;AAErB,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEjD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEpB,IAAI,EAAE,MAAM;IASxB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;CAG7B;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,qBAEpC,CAAC"}
1
+ {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../src/common/app-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW;;;;;8BAOJ,CAAC;AAErB,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEjD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEpB,IAAI,EAAE,MAAM;IAWxB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;CAG7B;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,qBAEpC,CAAC"}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.getError = exports.ApplicationError = exports.ErrorSchema = void 0;
7
+ const omit_1 = __importDefault(require("lodash/omit"));
4
8
  const zod_1 = require("zod");
5
9
  exports.ErrorSchema = zod_1.z
6
10
  .object({
@@ -12,10 +16,11 @@ exports.ErrorSchema = zod_1.z
12
16
  .catchall(zod_1.z.any());
13
17
  class ApplicationError extends Error {
14
18
  constructor(opts) {
15
- const { message, messageCode, statusCode = 400, name: _name, ...extra } = opts;
19
+ const { message, messageCode, statusCode = 400, ...rest } = opts;
16
20
  super(message);
17
21
  this.statusCode = statusCode;
18
22
  this.messageCode = messageCode;
23
+ const extra = (0, omit_1.default)(rest, ['name']);
19
24
  this.extra = Object.keys(extra).length > 0 ? extra : undefined;
20
25
  }
21
26
  static getError(opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../src/common/app-error.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,WAAW,GAAG,OAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;CACpB,CAAC;KACD,QAAQ,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAIrB,MAAa,gBAAiB,SAAQ,KAAK;IAKzC,YAAY,IAAY;QACtB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAjBD,4CAiBC;AAEM,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;IACvC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB"}
1
+ {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../src/common/app-error.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAC/B,6BAAwB;AAEX,QAAA,WAAW,GAAG,OAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;CACpB,CAAC;KACD,QAAQ,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAIrB,MAAa,gBAAiB,SAAQ,KAAK;IAKzC,YAAY,IAAY;QACtB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAnBD,4CAmBC;AAEM,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;IACvC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB"}
@@ -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"}
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./app-error"), exports);
18
18
  __exportStar(require("./base-helper"), exports);
19
- __exportStar(require("./keys"), exports);
20
19
  __exportStar(require("./logger"), exports);
21
20
  __exportStar(require("./types"), exports);
22
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,gDAA8B;AAC9B,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB"}
@@ -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,50 +1,24 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BindingKeys = exports.BindingValueTypes = exports.BindingScopes = exports.isClassConstructor = exports.isClassProvider = exports.isClass = void 0;
7
- const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
8
- const app_error_1 = require("./app-error");
3
+ exports.isClass = void 0;
4
+ /**
5
+ * The single predicate that tells a CONSTRUCTOR from a RESOLVER. Everything downstream branches on
6
+ * it: the boot booters (is this export an artifact?), the controller factories and `resolveValue`
7
+ * (`isClass(entity) ? entity : entity()`).
8
+ *
9
+ * `typeof x === 'function' && x.prototype !== undefined` is not enough - it is true of EVERY
10
+ * non-arrow function, so a helper exported next to an artifact got bound and `new`-ed, and a
11
+ * `function () { return User; }` resolver was returned instead of being called.
12
+ *
13
+ * The source check is sound because the whole toolchain targets ES2024: a class is emitted as
14
+ * `class`, never as an ES5 constructor function. A consumer bundling this package down to ES5 would
15
+ * break the predicate.
16
+ */
9
17
  const isClass = (target) => {
10
- return typeof target === 'function' && target.prototype !== undefined;
18
+ if (typeof target !== 'function' || target.prototype === undefined) {
19
+ return false;
20
+ }
21
+ return /^class[\s{]/.test(Function.prototype.toString.call(target));
11
22
  };
12
23
  exports.isClass = isClass;
13
- const isClassProvider = (target) => {
14
- return (typeof target === 'function' && target.prototype && typeof target.prototype.value === 'function');
15
- };
16
- exports.isClassProvider = isClassProvider;
17
- /** Distinguishes class constructors from arrow/regular functions via named prototype. */
18
- const isClassConstructor = (fn) => {
19
- return !!fn.prototype?.constructor?.name;
20
- };
21
- exports.isClassConstructor = isClassConstructor;
22
- class BindingScopes {
23
- static { this.SINGLETON = 'singleton'; }
24
- static { this.TRANSIENT = 'transient'; }
25
- }
26
- exports.BindingScopes = BindingScopes;
27
- class BindingValueTypes {
28
- static { this.CLASS = 'class'; }
29
- static { this.VALUE = 'value'; }
30
- static { this.PROVIDER = 'provider'; }
31
- }
32
- exports.BindingValueTypes = BindingValueTypes;
33
- class BindingKeys {
34
- static build(opts) {
35
- const { namespace, key } = opts;
36
- const keyParts = [];
37
- if (!(0, isEmpty_1.default)(namespace)) {
38
- keyParts.push(namespace);
39
- }
40
- if ((0, isEmpty_1.default)(key)) {
41
- throw (0, app_error_1.getError)({
42
- message: `[BindingKeys][build] Invalid key to build | key: ${key}`,
43
- });
44
- }
45
- keyParts.push(key);
46
- return keyParts.join('.');
47
- }
48
- }
49
- exports.BindingKeys = BindingKeys;
50
24
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AAErC,2CAAuC;AAiBhC,MAAM,OAAO,GAAG,CAAI,MAAW,EAAuB,EAAE;IAC7D,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,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;AAJW,QAAA,eAAe,mBAI1B;AAEF,yFAAyF;AAClF,MAAM,kBAAkB,GAAG,CAAC,EAAY,EAAW,EAAE;IAC1D,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF,MAAa,aAAa;aACR,cAAS,GAAG,WAAW,CAAC;aACxB,cAAS,GAAG,WAAW,CAAC;;AAF1C,sCAGC;AAGD,MAAa,iBAAiB;aACZ,UAAK,GAAG,OAAO,CAAC;aAChB,UAAK,GAAG,OAAO,CAAC;aAChB,aAAQ,GAAG,UAAU,CAAC;;AAHxC,8CAIC;AAQD,MAAa,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,IAAA,iBAAO,EAAC,SAAS,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAA,oBAAQ,EAAC;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;AAjBD,kCAiBC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":";;;AAaA;;;;;;;;;;;;GAYG;AACI,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;AANW,QAAA,OAAO,WAMlB"}
@@ -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":"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"}