@codefast/di 1.0.0-canary.6 → 1.0.0-canary.7

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 (175) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +67 -499
  3. package/dist/binding-scope.d.ts +10 -0
  4. package/dist/binding-scope.d.ts.map +1 -0
  5. package/dist/binding-scope.js +24 -0
  6. package/dist/binding-scope.js.map +1 -0
  7. package/dist/binding-select.d.ts +16 -0
  8. package/dist/binding-select.d.ts.map +1 -0
  9. package/dist/binding-select.js +130 -0
  10. package/dist/binding-select.js.map +1 -0
  11. package/dist/binding.d.ts +194 -0
  12. package/dist/binding.d.ts.map +1 -0
  13. package/dist/binding.js +46 -0
  14. package/dist/binding.js.map +1 -0
  15. package/dist/constraints.d.ts +51 -0
  16. package/dist/constraints.d.ts.map +1 -0
  17. package/dist/constraints.js +88 -0
  18. package/dist/constraints.js.map +1 -0
  19. package/dist/{constructor-type.d.mts → constructor-type.d.ts} +3 -5
  20. package/dist/constructor-type.d.ts.map +1 -0
  21. package/dist/constructor-type.js +2 -0
  22. package/dist/constructor-type.js.map +1 -0
  23. package/dist/container.d.ts +58 -0
  24. package/dist/container.d.ts.map +1 -0
  25. package/dist/container.js +853 -0
  26. package/dist/container.js.map +1 -0
  27. package/dist/decorators/inject.d.ts +46 -0
  28. package/dist/decorators/inject.d.ts.map +1 -0
  29. package/dist/decorators/inject.js +145 -0
  30. package/dist/decorators/inject.js.map +1 -0
  31. package/dist/decorators/injectable.d.ts +29 -0
  32. package/dist/decorators/injectable.d.ts.map +1 -0
  33. package/dist/decorators/injectable.js +53 -0
  34. package/dist/decorators/injectable.js.map +1 -0
  35. package/dist/decorators/lifecycle-decorators.d.ts +9 -0
  36. package/dist/decorators/lifecycle-decorators.d.ts.map +1 -0
  37. package/dist/decorators/lifecycle-decorators.js +40 -0
  38. package/dist/decorators/lifecycle-decorators.js.map +1 -0
  39. package/dist/dependency-graph.d.ts +40 -0
  40. package/dist/dependency-graph.d.ts.map +1 -0
  41. package/dist/dependency-graph.js +66 -0
  42. package/dist/dependency-graph.js.map +1 -0
  43. package/dist/environment.d.ts +51 -0
  44. package/dist/environment.d.ts.map +1 -0
  45. package/dist/environment.js +100 -0
  46. package/dist/environment.js.map +1 -0
  47. package/dist/errors.d.ts +150 -0
  48. package/dist/errors.d.ts.map +1 -0
  49. package/dist/errors.js +197 -0
  50. package/dist/errors.js.map +1 -0
  51. package/dist/graph-adapters/cytoscape.d.ts +33 -0
  52. package/dist/graph-adapters/cytoscape.d.ts.map +1 -0
  53. package/dist/graph-adapters/cytoscape.js +30 -0
  54. package/dist/graph-adapters/cytoscape.js.map +1 -0
  55. package/dist/graph-adapters/dot.d.ts +6 -0
  56. package/dist/graph-adapters/dot.d.ts.map +1 -0
  57. package/dist/graph-adapters/dot.js +18 -0
  58. package/dist/graph-adapters/dot.js.map +1 -0
  59. package/dist/graph-adapters/reactflow.d.ts +38 -0
  60. package/dist/graph-adapters/reactflow.d.ts.map +1 -0
  61. package/dist/graph-adapters/reactflow.js +23 -0
  62. package/dist/graph-adapters/reactflow.js.map +1 -0
  63. package/dist/index.d.ts +25 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +21 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/inspector.d.ts +44 -0
  68. package/dist/inspector.d.ts.map +1 -0
  69. package/dist/inspector.js +82 -0
  70. package/dist/inspector.js.map +1 -0
  71. package/dist/lifecycle.d.ts +21 -0
  72. package/dist/lifecycle.d.ts.map +1 -0
  73. package/dist/lifecycle.js +174 -0
  74. package/dist/lifecycle.js.map +1 -0
  75. package/dist/metadata/{metadata-keys.d.mts → metadata-keys.d.ts} +5 -7
  76. package/dist/metadata/metadata-keys.d.ts.map +1 -0
  77. package/dist/metadata/metadata-keys.js +25 -0
  78. package/dist/metadata/metadata-keys.js.map +1 -0
  79. package/dist/metadata/metadata-reader-token.d.ts +7 -0
  80. package/dist/metadata/metadata-reader-token.d.ts.map +1 -0
  81. package/dist/metadata/metadata-reader-token.js +6 -0
  82. package/dist/metadata/metadata-reader-token.js.map +1 -0
  83. package/dist/metadata/metadata-types.d.ts +48 -0
  84. package/dist/metadata/metadata-types.d.ts.map +1 -0
  85. package/dist/metadata/metadata-types.js +2 -0
  86. package/dist/metadata/metadata-types.js.map +1 -0
  87. package/dist/metadata/symbol-metadata-reader.d.ts +20 -0
  88. package/dist/metadata/symbol-metadata-reader.d.ts.map +1 -0
  89. package/dist/metadata/symbol-metadata-reader.js +34 -0
  90. package/dist/metadata/symbol-metadata-reader.js.map +1 -0
  91. package/dist/module.d.ts +60 -0
  92. package/dist/module.d.ts.map +1 -0
  93. package/dist/module.js +47 -0
  94. package/dist/module.js.map +1 -0
  95. package/dist/registry.d.ts +41 -0
  96. package/dist/registry.d.ts.map +1 -0
  97. package/dist/registry.js +208 -0
  98. package/dist/registry.js.map +1 -0
  99. package/dist/resolve-options.d.ts +19 -0
  100. package/dist/resolve-options.d.ts.map +1 -0
  101. package/dist/resolve-options.js +32 -0
  102. package/dist/resolve-options.js.map +1 -0
  103. package/dist/resolver.d.ts +90 -0
  104. package/dist/resolver.d.ts.map +1 -0
  105. package/dist/resolver.js +1208 -0
  106. package/dist/resolver.js.map +1 -0
  107. package/dist/scope.d.ts +25 -0
  108. package/dist/scope.d.ts.map +1 -0
  109. package/dist/scope.js +61 -0
  110. package/dist/scope.js.map +1 -0
  111. package/dist/token.d.ts +23 -0
  112. package/dist/token.d.ts.map +1 -0
  113. package/dist/token.js +25 -0
  114. package/dist/token.js.map +1 -0
  115. package/dist/types.d.ts +90 -0
  116. package/dist/types.d.ts.map +1 -0
  117. package/dist/types.js +2 -0
  118. package/dist/types.js.map +1 -0
  119. package/package.json +89 -80
  120. package/dist/binding-scope.d.mts +0 -13
  121. package/dist/binding-scope.mjs +0 -21
  122. package/dist/binding-select.d.mts +0 -19
  123. package/dist/binding-select.mjs +0 -72
  124. package/dist/binding.d.mts +0 -191
  125. package/dist/binding.mjs +0 -36
  126. package/dist/constraints.d.mts +0 -55
  127. package/dist/constraints.mjs +0 -87
  128. package/dist/constructor-type.mjs +0 -1
  129. package/dist/container.d.mts +0 -62
  130. package/dist/container.mjs +0 -741
  131. package/dist/decorators/inject.d.mts +0 -49
  132. package/dist/decorators/inject.mjs +0 -136
  133. package/dist/decorators/injectable.d.mts +0 -32
  134. package/dist/decorators/injectable.mjs +0 -57
  135. package/dist/decorators/lifecycle-decorators.d.mts +0 -11
  136. package/dist/decorators/lifecycle-decorators.mjs +0 -38
  137. package/dist/dependency-graph.d.mts +0 -43
  138. package/dist/dependency-graph.mjs +0 -63
  139. package/dist/environment.d.mts +0 -55
  140. package/dist/environment.mjs +0 -98
  141. package/dist/errors.d.mts +0 -153
  142. package/dist/errors.mjs +0 -197
  143. package/dist/graph-adapters/cytoscape.d.mts +0 -36
  144. package/dist/graph-adapters/cytoscape.mjs +0 -26
  145. package/dist/graph-adapters/dot.d.mts +0 -9
  146. package/dist/graph-adapters/dot.mjs +0 -20
  147. package/dist/graph-adapters/reactflow.d.mts +0 -41
  148. package/dist/graph-adapters/reactflow.mjs +0 -29
  149. package/dist/index.d.mts +0 -18
  150. package/dist/index.mjs +0 -12
  151. package/dist/inspector.d.mts +0 -48
  152. package/dist/inspector.mjs +0 -71
  153. package/dist/lifecycle.d.mts +0 -25
  154. package/dist/lifecycle.mjs +0 -118
  155. package/dist/metadata/metadata-keys.mjs +0 -27
  156. package/dist/metadata/metadata-reader-token.d.mts +0 -10
  157. package/dist/metadata/metadata-reader-token.mjs +0 -8
  158. package/dist/metadata/metadata-types.d.mts +0 -51
  159. package/dist/metadata/metadata-types.mjs +0 -1
  160. package/dist/metadata/symbol-metadata-reader.d.mts +0 -23
  161. package/dist/metadata/symbol-metadata-reader.mjs +0 -29
  162. package/dist/module.d.mts +0 -62
  163. package/dist/module.mjs +0 -42
  164. package/dist/registry.d.mts +0 -45
  165. package/dist/registry.mjs +0 -163
  166. package/dist/resolve-options.d.mts +0 -22
  167. package/dist/resolve-options.mjs +0 -28
  168. package/dist/resolver.d.mts +0 -94
  169. package/dist/resolver.mjs +0 -767
  170. package/dist/scope.d.mts +0 -28
  171. package/dist/scope.mjs +0 -58
  172. package/dist/token.d.mts +0 -25
  173. package/dist/token.mjs +0 -22
  174. package/dist/types.d.mts +0 -92
  175. package/dist/types.mjs +0 -1
package/dist/scope.d.mts DELETED
@@ -1,28 +0,0 @@
1
- import { BindingIdentifier } from "./types.mjs";
2
-
3
- //#region src/scope.d.ts
4
- /**
5
- * @since 0.3.16-canary.0
6
- */
7
- declare class ScopeManager {
8
- private readonly _singletons;
9
- private readonly _inflight;
10
- private readonly _scoped;
11
- readonly isChild: boolean;
12
- constructor(isChild?: boolean);
13
- hasSingleton(id: BindingIdentifier): boolean;
14
- getSingleton<Value>(id: BindingIdentifier): Value;
15
- setSingleton(id: BindingIdentifier, instance: unknown): void;
16
- deleteSingleton(id: BindingIdentifier): boolean;
17
- getAllSingletons(): ReadonlyMap<BindingIdentifier, unknown>;
18
- getInflight(id: BindingIdentifier): Promise<unknown> | undefined;
19
- setInflight(id: BindingIdentifier, p: Promise<unknown>): void;
20
- clearInflight(id: BindingIdentifier): void;
21
- hasScoped(id: BindingIdentifier): boolean;
22
- getScoped<Value>(id: BindingIdentifier): Value;
23
- setScoped(id: BindingIdentifier, instance: unknown): void;
24
- getAllScoped(): ReadonlyMap<BindingIdentifier, unknown>;
25
- clearAll(): void;
26
- }
27
- //#endregion
28
- export { ScopeManager };
package/dist/scope.mjs DELETED
@@ -1,58 +0,0 @@
1
- import { MissingScopeContextError } from "./errors.mjs";
2
- //#region src/scope.ts
3
- /**
4
- * @since 0.3.16-canary.0
5
- */
6
- var ScopeManager = class {
7
- _singletons = /* @__PURE__ */ new Map();
8
- _inflight = /* @__PURE__ */ new Map();
9
- _scoped = /* @__PURE__ */ new Map();
10
- isChild;
11
- constructor(isChild = false) {
12
- this.isChild = isChild;
13
- }
14
- hasSingleton(id) {
15
- return this._singletons.has(id);
16
- }
17
- getSingleton(id) {
18
- return this._singletons.get(id);
19
- }
20
- setSingleton(id, instance) {
21
- this._singletons.set(id, instance);
22
- }
23
- deleteSingleton(id) {
24
- return this._singletons.delete(id);
25
- }
26
- getAllSingletons() {
27
- return this._singletons;
28
- }
29
- getInflight(id) {
30
- return this._inflight.get(id);
31
- }
32
- setInflight(id, p) {
33
- this._inflight.set(id, p);
34
- }
35
- clearInflight(id) {
36
- this._inflight.delete(id);
37
- }
38
- hasScoped(id) {
39
- return this._scoped.has(id);
40
- }
41
- getScoped(id) {
42
- return this._scoped.get(id);
43
- }
44
- setScoped(id, instance) {
45
- if (!this.isChild) throw new MissingScopeContextError("(unknown)");
46
- this._scoped.set(id, instance);
47
- }
48
- getAllScoped() {
49
- return this._scoped;
50
- }
51
- clearAll() {
52
- this._singletons.clear();
53
- this._inflight.clear();
54
- this._scoped.clear();
55
- }
56
- };
57
- //#endregion
58
- export { ScopeManager };
package/dist/token.d.mts DELETED
@@ -1,25 +0,0 @@
1
- import { Constructor } from "./constructor-type.mjs";
2
-
3
- //#region src/token.d.ts
4
- declare const TOKEN_BRAND: unique symbol;
5
- /**
6
- * @since 0.3.16-canary.0
7
- */
8
- interface Token<Value> {
9
- readonly name: string;
10
- readonly [TOKEN_BRAND]: Value;
11
- }
12
- /**
13
- * @since 0.3.16-canary.0
14
- */
15
- declare function token<Value>(name: string): Token<Value>;
16
- /**
17
- * @since 0.3.16-canary.0
18
- */
19
- declare function tokenName(dependency: Token<unknown> | Constructor): string;
20
- /**
21
- * @since 0.3.16-canary.0
22
- */
23
- declare function isToken(value: unknown): value is Token<unknown>;
24
- //#endregion
25
- export { Token, isToken, token, tokenName };
package/dist/token.mjs DELETED
@@ -1,22 +0,0 @@
1
- //#region src/token.ts
2
- /**
3
- * @since 0.3.16-canary.0
4
- */
5
- function token(name) {
6
- return { name };
7
- }
8
- /**
9
- * @since 0.3.16-canary.0
10
- */
11
- function tokenName(dependency) {
12
- if (typeof dependency === "function") return dependency.name;
13
- return dependency.name;
14
- }
15
- /**
16
- * @since 0.3.16-canary.0
17
- */
18
- function isToken(value) {
19
- return typeof value === "object" && value !== null && "name" in value && typeof value["name"] === "string";
20
- }
21
- //#endregion
22
- export { isToken, token, tokenName };
package/dist/types.d.mts DELETED
@@ -1,92 +0,0 @@
1
- import { Constructor } from "./constructor-type.mjs";
2
- import { Token } from "./token.mjs";
3
-
4
- //#region src/types.d.ts
5
- /**
6
- * A single [tag, value] pair used in slot constraints and resolve options.
7
- *
8
- * @since 0.3.16-canary.0
9
- */
10
- type BindingTag = readonly [tag: string, value: unknown];
11
- /**
12
- * Token or class constructor used as a binding / injection / resolve key.
13
- *
14
- * @since 0.3.16-canary.0
15
- */
16
- type DependencyKey = Token<unknown> | Constructor;
17
- /**
18
- * @since 0.3.16-canary.0
19
- */
20
- type BindingScope = "singleton" | "transient" | "scoped";
21
- declare const BINDING_ID_BRAND: unique symbol;
22
- /**
23
- * @since 0.3.16-canary.0
24
- */
25
- type BindingIdentifier = string & {
26
- readonly [BINDING_ID_BRAND]: true;
27
- };
28
- /**
29
- * @since 0.3.16-canary.0
30
- */
31
- type BindingKind = "class" | "dynamic" | "dynamic-async" | "resolved" | "resolved-async" | "constant" | "alias";
32
- /**
33
- * @since 0.3.16-canary.0
34
- */
35
- type ActivationHandler<Value> = (ctx: ResolutionContext, instance: Value) => Value | Promise<Value>;
36
- /**
37
- * @since 0.3.16-canary.0
38
- */
39
- type DeactivationHandler<Value> = (instance: Value) => void | Promise<void>;
40
- /**
41
- * @since 0.3.16-canary.0
42
- */
43
- interface ResolveOptions {
44
- name?: string;
45
- /**
46
- * Single-tag shorthand — semantics match including one pair in `tags`.
47
- * Enables fast-path lookup alongside `tags`.
48
- */
49
- tag?: BindingTag;
50
- tags?: ReadonlyArray<BindingTag>;
51
- }
52
- /**
53
- * @since 0.3.16-canary.0
54
- */
55
- interface ResolutionFrame {
56
- readonly tokenName: string;
57
- readonly scope: BindingScope;
58
- readonly bindingId: BindingIdentifier;
59
- readonly kind: BindingKind;
60
- readonly slot: {
61
- readonly name: string | undefined;
62
- readonly tags: ReadonlyArray<BindingTag>;
63
- };
64
- }
65
- /**
66
- * @since 0.3.16-canary.0
67
- */
68
- interface ConstraintContext {
69
- readonly resolutionPath: ReadonlyArray<string>;
70
- readonly resolutionStack: ReadonlyArray<ResolutionFrame>;
71
- readonly parent: ResolutionFrame | undefined;
72
- readonly ancestors: ReadonlyArray<ResolutionFrame>;
73
- readonly currentResolveOptions: ResolveOptions | undefined;
74
- }
75
- /**
76
- * @since 0.3.16-canary.0
77
- */
78
- interface ResolutionContext {
79
- resolve<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value;
80
- resolveAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Value>;
81
- resolveOptional<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value | undefined;
82
- resolveOptionalAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Value | undefined>;
83
- resolveAll<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Array<Value>;
84
- resolveAllAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Array<Value>>;
85
- readonly graph: ConstraintContext;
86
- }
87
- /**
88
- * @since 0.3.16-canary.0
89
- */
90
- type TokenValue<Type> = Type extends Token<infer Value> ? Value : Type extends Constructor<infer Value> ? Value : never;
91
- //#endregion
92
- export { ActivationHandler, BindingIdentifier, BindingKind, BindingScope, BindingTag, ConstraintContext, type Constructor, DeactivationHandler, DependencyKey, ResolutionContext, ResolutionFrame, ResolveOptions, TokenValue };
package/dist/types.mjs DELETED
@@ -1 +0,0 @@
1
- export {};