@codefast/di 0.5.0-canary.8 → 0.5.0-canary.9

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 (91) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/README.md +3 -1
  3. package/dist/binding.d.ts +41 -22
  4. package/dist/binding.d.ts.map +1 -1
  5. package/dist/binding.js +11 -0
  6. package/dist/binding.js.map +1 -1
  7. package/dist/container/binding-builders.d.ts.map +1 -1
  8. package/dist/container/binding-builders.js +8 -5
  9. package/dist/container/binding-builders.js.map +1 -1
  10. package/dist/container/container.d.ts.map +1 -1
  11. package/dist/container/container.js +67 -110
  12. package/dist/container/container.js.map +1 -1
  13. package/dist/errors.d.ts +10 -0
  14. package/dist/errors.d.ts.map +1 -1
  15. package/dist/errors.js +13 -0
  16. package/dist/errors.js.map +1 -1
  17. package/dist/index.d.ts +1 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/introspection/inspector.d.ts +0 -1
  22. package/dist/introspection/inspector.d.ts.map +1 -1
  23. package/dist/introspection/inspector.js +2 -7
  24. package/dist/introspection/inspector.js.map +1 -1
  25. package/dist/registry.d.ts.map +1 -1
  26. package/dist/registry.js +46 -33
  27. package/dist/registry.js.map +1 -1
  28. package/dist/resolution/activation-need.d.ts +4 -2
  29. package/dist/resolution/activation-need.d.ts.map +1 -1
  30. package/dist/resolution/activation-need.js +15 -11
  31. package/dist/resolution/activation-need.js.map +1 -1
  32. package/dist/resolution/binding-lookup-cache.d.ts +1 -1
  33. package/dist/resolution/binding-lookup-cache.d.ts.map +1 -1
  34. package/dist/resolution/binding-lookup-cache.js +18 -2
  35. package/dist/resolution/binding-lookup-cache.js.map +1 -1
  36. package/dist/resolution/binding-scope.d.ts +5 -2
  37. package/dist/resolution/binding-scope.d.ts.map +1 -1
  38. package/dist/resolution/binding-scope.js +6 -17
  39. package/dist/resolution/binding-scope.js.map +1 -1
  40. package/dist/resolution/binding-select.d.ts +8 -1
  41. package/dist/resolution/binding-select.d.ts.map +1 -1
  42. package/dist/resolution/binding-select.js +13 -32
  43. package/dist/resolution/binding-select.js.map +1 -1
  44. package/dist/resolution/diagnostics.d.ts +2 -2
  45. package/dist/resolution/diagnostics.d.ts.map +1 -1
  46. package/dist/resolution/environment.d.ts +47 -21
  47. package/dist/resolution/environment.d.ts.map +1 -1
  48. package/dist/resolution/environment.js +134 -31
  49. package/dist/resolution/environment.js.map +1 -1
  50. package/dist/resolution/instantiation-plan.d.ts.map +1 -1
  51. package/dist/resolution/instantiation-plan.js +1 -1
  52. package/dist/resolution/instantiation-plan.js.map +1 -1
  53. package/dist/resolution/lifecycle.d.ts.map +1 -1
  54. package/dist/resolution/lifecycle.js +46 -53
  55. package/dist/resolution/lifecycle.js.map +1 -1
  56. package/dist/resolution/resolution-path.d.ts +82 -6
  57. package/dist/resolution/resolution-path.d.ts.map +1 -1
  58. package/dist/resolution/resolution-path.js +66 -8
  59. package/dist/resolution/resolution-path.js.map +1 -1
  60. package/dist/resolution/resolve-options.d.ts +41 -4
  61. package/dist/resolution/resolve-options.d.ts.map +1 -1
  62. package/dist/resolution/resolve-options.js +25 -1
  63. package/dist/resolution/resolve-options.js.map +1 -1
  64. package/dist/resolution/resolver.d.ts +29 -11
  65. package/dist/resolution/resolver.d.ts.map +1 -1
  66. package/dist/resolution/resolver.js +417 -564
  67. package/dist/resolution/resolver.js.map +1 -1
  68. package/dist/resolution/scope.d.ts +4 -0
  69. package/dist/resolution/scope.d.ts.map +1 -1
  70. package/dist/resolution/scope.js +8 -0
  71. package/dist/resolution/scope.js.map +1 -1
  72. package/package.json +5 -11
  73. package/src/binding.ts +46 -23
  74. package/src/container/binding-builders.ts +8 -5
  75. package/src/container/container.ts +72 -119
  76. package/src/errors.ts +17 -0
  77. package/src/index.ts +3 -1
  78. package/src/introspection/inspector.ts +2 -8
  79. package/src/registry.ts +52 -35
  80. package/src/resolution/activation-need.ts +18 -14
  81. package/src/resolution/binding-lookup-cache.ts +18 -2
  82. package/src/resolution/binding-scope.ts +6 -17
  83. package/src/resolution/binding-select.ts +14 -35
  84. package/src/resolution/diagnostics.ts +2 -2
  85. package/src/resolution/environment.ts +181 -35
  86. package/src/resolution/instantiation-plan.ts +5 -5
  87. package/src/resolution/lifecycle.ts +55 -53
  88. package/src/resolution/resolution-path.ts +119 -25
  89. package/src/resolution/resolve-options.ts +51 -4
  90. package/src/resolution/resolver.ts +582 -785
  91. package/src/resolution/scope.ts +10 -0
@@ -1,4 +1,5 @@
1
1
  import type { Container } from "#/container/container";
2
+ import type { BranchDepth, OwnedBranchPath, OwnedBranchStack } from "#/resolution/resolution-path";
2
3
  import type { Token } from "#/token";
3
4
  import type { BindingIdentifier, BindingKind, BindingScope, ConstraintContext, Constructor, ResolutionFrame, ResolutionContext, ResolveOptions } from "#/types";
4
5
  /**
@@ -15,7 +16,9 @@ export declare function getActiveContainer(): Container | undefined;
15
16
  export interface ResolverCallbacks {
16
17
  resolveFromContext<const Value>(token: Token<Value> | Constructor<Value>, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>): Value;
17
18
  resolve<const Value>(token: Token<Value> | Constructor<Value>, options: ResolveOptions | undefined, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>): Value;
18
- resolveAsyncFromContext<const Value>(token: Token<Value> | Constructor<Value>, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>, callerContext?: DefaultResolutionContext): Promise<Value>;
19
+ resolveAsyncFromContext<const Value>(token: Token<Value> | Constructor<Value>, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>, branchDepth: BranchDepth): Promise<Value>;
20
+ /** Not one of the eight `Value`-naming entry points: its caller is, and casts once. */
21
+ resolveAsyncFromCascade(token: Token<unknown> | Constructor): Promise<unknown>;
19
22
  resolveAsync<const Value>(token: Token<Value> | Constructor<Value>, options: ResolveOptions | undefined, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>): Promise<Value>;
20
23
  resolveOptional<const Value>(token: Token<Value> | Constructor<Value>, options: ResolveOptions | undefined, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>): Value | undefined;
21
24
  resolveOptionalAsync<const Value>(token: Token<Value> | Constructor<Value>, options: ResolveOptions | undefined, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>): Promise<Value | undefined>;
@@ -28,29 +31,52 @@ export interface ResolverCallbacks {
28
31
  export declare class DefaultResolutionContext implements ResolutionContext {
29
32
  #private;
30
33
  constructor(resolver: ResolverCallbacks, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>, currentOptions: ResolveOptions | undefined);
34
+ get graph(): ConstraintContext;
35
+ reset(resolver: ResolverCallbacks, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>, currentOptions: ResolveOptions | undefined): void;
36
+ resolve<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value;
37
+ resolveAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Value>;
38
+ resolveOptional<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value | undefined;
39
+ resolveOptionalAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Value | undefined>;
40
+ resolveAll<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Array<Value>;
41
+ resolveAllAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Array<Value>>;
42
+ }
43
+ /**
44
+ * One async level's resolution context, which is also its branch of the resolution path.
45
+ *
46
+ * @remarks Separate from {@link DefaultResolutionContext} so the sync lane's pooled context keeps
47
+ * reading its arrays as plain fields: only an async branch has a prefix to take. See
48
+ * `ARCHITECTURE.md` — an async level owns its branch of the path.
49
+ *
50
+ * @since 0.5.0-canary.9
51
+ */
52
+ export declare class AsyncLevelContext implements ResolutionContext {
53
+ #private;
31
54
  /**
32
- * The unwind callback shared by every level of the async chain this context serves.
33
- *
34
- * @remarks A plain field, not a lazy accessor — a getter taking a factory would allocate that
35
- * factory on every level, which is the allocation this exists to avoid.
36
- */
37
- chainSettle: (() => void) | undefined;
38
- /**
39
- * How many levels of the async chain are still in flight on this context.
40
- *
41
- * @remarks The chain's first level acquires the context and every level increments; the last
42
- * one to settle returns it to the resolver's pool. Counting here rather than on the resolver
43
- * is what lets two concurrent chains run without a shared counter to get wrong.
44
- */
45
- chainLevels: number;
46
- /**
47
- * The resolver this context speaks to — an inner async level checks it before reusing this.
48
- *
49
- * @remarks A field, not a method, because the check runs on every hop of every chain.
55
+ * @param resolutionPath - this level's own branch; the depth is read off it rather than passed,
56
+ * so the two cannot disagree about where this level sits
50
57
  */
51
- owner: ResolverCallbacks;
58
+ constructor(resolver: ResolverCallbacks, resolutionPath: OwnedBranchPath, resolutionStack: OwnedBranchStack, currentOptions: ResolveOptions | undefined);
59
+ get graph(): ConstraintContext;
60
+ resolve<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value;
61
+ resolveAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Value>;
62
+ resolveOptional<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value | undefined;
63
+ resolveOptionalAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Value | undefined>;
64
+ resolveAll<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Array<Value>;
65
+ resolveAllAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Array<Value>>;
66
+ }
67
+ /**
68
+ * The one context every level of an open synchronous factory cascade shares.
69
+ *
70
+ * @remarks It carries no per-level state at all: while the cascade is open, the resolver's arrays
71
+ * *are* this level's ancestor chain, so nothing has to be allocated per level. See
72
+ * `ARCHITECTURE.md` — the cascade lane.
73
+ *
74
+ * @since 0.5.0-canary.9
75
+ */
76
+ export declare class AsyncCascadeContext implements ResolutionContext {
77
+ #private;
78
+ constructor(resolver: ResolverCallbacks, cascadePath: Array<string>, cascadeStack: Array<ResolutionFrame>);
52
79
  get graph(): ConstraintContext;
53
- reset(resolver: ResolverCallbacks, resolutionPath: Array<string>, resolutionStack: Array<ResolutionFrame>, currentOptions: ResolveOptions | undefined): void;
54
80
  resolve<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value;
55
81
  resolveAsync<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Promise<Value>;
56
82
  resolveOptional<const Value>(token: Token<Value> | Constructor<Value>, options?: ResolveOptions): Value | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/resolution/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/resolution/environment.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { UNOWNED_BRANCH } from "#/resolution/resolution-path";
1
2
  // ── Active container ──────────────────────────────────────────────────────────
2
3
  let activeContainer;
3
4
  /**
@@ -29,33 +30,11 @@ export class DefaultResolutionContext {
29
30
  #currentOptions;
30
31
  constructor(resolver, resolutionPath, resolutionStack, currentOptions) {
31
32
  this.#resolver = resolver;
32
- this.owner = resolver;
33
33
  this.#resolutionPath = resolutionPath;
34
34
  this.#resolutionStack = resolutionStack;
35
35
  this.#currentOptions = currentOptions;
36
36
  }
37
37
  #graph;
38
- /**
39
- * The unwind callback shared by every level of the async chain this context serves.
40
- *
41
- * @remarks A plain field, not a lazy accessor — a getter taking a factory would allocate that
42
- * factory on every level, which is the allocation this exists to avoid.
43
- */
44
- chainSettle;
45
- /**
46
- * How many levels of the async chain are still in flight on this context.
47
- *
48
- * @remarks The chain's first level acquires the context and every level increments; the last
49
- * one to settle returns it to the resolver's pool. Counting here rather than on the resolver
50
- * is what lets two concurrent chains run without a shared counter to get wrong.
51
- */
52
- chainLevels = 0;
53
- /**
54
- * The resolver this context speaks to — an inner async level checks it before reusing this.
55
- *
56
- * @remarks A field, not a method, because the check runs on every hop of every chain.
57
- */
58
- owner;
59
38
  get graph() {
60
39
  if (this.#graph === undefined) {
61
40
  this.#graph = new DefaultConstraintContext(this.#resolutionPath, this.#resolutionStack, this.#currentOptions);
@@ -63,14 +42,21 @@ export class DefaultResolutionContext {
63
42
  return this.#graph;
64
43
  }
65
44
  reset(resolver, resolutionPath, resolutionStack, currentOptions) {
66
- this.#resolver = resolver;
67
- this.owner = resolver;
68
- this.#resolutionPath = resolutionPath;
69
- this.#resolutionStack = resolutionStack;
45
+ // Compared before storing: a pooled context lives long enough to be in old space, so storing a
46
+ // pointer costs a write barrier, and a sync resolve hands every depth the same two arrays.
47
+ if (this.#resolver !== resolver) {
48
+ this.#resolver = resolver;
49
+ }
50
+ if (this.#resolutionPath !== resolutionPath) {
51
+ this.#resolutionPath = resolutionPath;
52
+ }
53
+ if (this.#resolutionStack !== resolutionStack) {
54
+ this.#resolutionStack = resolutionStack;
55
+ }
70
56
  this.#currentOptions = currentOptions;
71
- this.#graph = undefined;
72
- this.chainSettle = undefined;
73
- this.chainLevels = 0;
57
+ if (this.#graph !== undefined) {
58
+ this.#graph = undefined;
59
+ }
74
60
  }
75
61
  resolve(token, options) {
76
62
  if (options === undefined) {
@@ -80,8 +66,8 @@ export class DefaultResolutionContext {
80
66
  }
81
67
  resolveAsync(token, options) {
82
68
  if (options === undefined) {
83
- // Hand the callee this context: an inner level of the same chain reuses it as-is.
84
- return this.#resolver.resolveAsyncFromContext(token, this.#resolutionPath, this.#resolutionStack, this);
69
+ // UNOWNED_BRANCH: this frame's array is a sync stack it will pop, so the lane must copy it.
70
+ return this.#resolver.resolveAsyncFromContext(token, this.#resolutionPath, this.#resolutionStack, UNOWNED_BRANCH);
85
71
  }
86
72
  return this.#resolver.resolveAsync(token, options, this.#resolutionPath, this.#resolutionStack);
87
73
  }
@@ -98,6 +84,123 @@ export class DefaultResolutionContext {
98
84
  return this.#resolver.resolveAllAsync(token, options, this.#resolutionPath, this.#resolutionStack);
99
85
  }
100
86
  }
87
+ /**
88
+ * One async level's resolution context, which is also its branch of the resolution path.
89
+ *
90
+ * @remarks Separate from {@link DefaultResolutionContext} so the sync lane's pooled context keeps
91
+ * reading its arrays as plain fields: only an async branch has a prefix to take. See
92
+ * `ARCHITECTURE.md` — an async level owns its branch of the path.
93
+ *
94
+ * @since 0.5.0-canary.9
95
+ */
96
+ export class AsyncLevelContext {
97
+ #resolver;
98
+ #resolutionPath;
99
+ #resolutionStack;
100
+ #currentOptions;
101
+ #branchDepth;
102
+ /**
103
+ * @param resolutionPath - this level's own branch; the depth is read off it rather than passed,
104
+ * so the two cannot disagree about where this level sits
105
+ */
106
+ constructor(resolver, resolutionPath, resolutionStack, currentOptions) {
107
+ this.#resolver = resolver;
108
+ this.#resolutionPath = resolutionPath;
109
+ this.#resolutionStack = resolutionStack;
110
+ this.#currentOptions = currentOptions;
111
+ this.#branchDepth = resolutionPath.length;
112
+ }
113
+ #graph;
114
+ #exactPathCache;
115
+ #exactStackCache;
116
+ get graph() {
117
+ if (this.#graph === undefined) {
118
+ this.#graph = new DefaultConstraintContext(this.#exactPath(), this.#exactStack(), this.#currentOptions);
119
+ }
120
+ return this.#graph;
121
+ }
122
+ // The path is append-only and a descendant may already have grown it past this level, so every
123
+ // caller but the async lane is handed this branch's prefix. It is fixed for the level's lifetime.
124
+ #exactPath() {
125
+ return (this.#exactPathCache ??= this.#resolutionPath.slice(0, this.#branchDepth));
126
+ }
127
+ #exactStack() {
128
+ return (this.#exactStackCache ??= this.#resolutionStack.slice(0, this.#branchDepth));
129
+ }
130
+ resolve(token, options) {
131
+ if (options === undefined) {
132
+ return this.#resolver.resolveFromContext(token, this.#exactPath(), this.#exactStack());
133
+ }
134
+ return this.#resolver.resolve(token, options, this.#exactPath(), this.#exactStack());
135
+ }
136
+ resolveAsync(token, options) {
137
+ if (options === undefined) {
138
+ // The hot lane: the resolver reads this branch by depth, so nothing is materialized.
139
+ return this.#resolver.resolveAsyncFromContext(token, this.#resolutionPath, this.#resolutionStack, this.#branchDepth);
140
+ }
141
+ return this.#resolver.resolveAsync(token, options, this.#exactPath(), this.#exactStack());
142
+ }
143
+ resolveOptional(token, options) {
144
+ return this.#resolver.resolveOptional(token, options, this.#exactPath(), this.#exactStack());
145
+ }
146
+ resolveOptionalAsync(token, options) {
147
+ return this.#resolver.resolveOptionalAsync(token, options, this.#exactPath(), this.#exactStack());
148
+ }
149
+ resolveAll(token, options) {
150
+ return this.#resolver.resolveAll(token, options, this.#exactPath(), this.#exactStack());
151
+ }
152
+ resolveAllAsync(token, options) {
153
+ return this.#resolver.resolveAllAsync(token, options, this.#exactPath(), this.#exactStack());
154
+ }
155
+ }
156
+ /**
157
+ * The one context every level of an open synchronous factory cascade shares.
158
+ *
159
+ * @remarks It carries no per-level state at all: while the cascade is open, the resolver's arrays
160
+ * *are* this level's ancestor chain, so nothing has to be allocated per level. See
161
+ * `ARCHITECTURE.md` — the cascade lane.
162
+ *
163
+ * @since 0.5.0-canary.9
164
+ */
165
+ export class AsyncCascadeContext {
166
+ #resolver;
167
+ #cascadePath;
168
+ #cascadeStack;
169
+ constructor(resolver, cascadePath, cascadeStack) {
170
+ this.#resolver = resolver;
171
+ this.#cascadePath = cascadePath;
172
+ this.#cascadeStack = cascadeStack;
173
+ }
174
+ get graph() {
175
+ // Not memoized: this context outlives every level, so a cached graph would describe whichever
176
+ // level asked first. The cascade arrays are only this level's ancestors while it is open.
177
+ return new DefaultConstraintContext(this.#cascadePath, this.#cascadeStack, undefined);
178
+ }
179
+ resolve(token, options) {
180
+ if (options === undefined) {
181
+ return this.#resolver.resolveFromContext(token, this.#cascadePath, this.#cascadeStack);
182
+ }
183
+ return this.#resolver.resolve(token, options, this.#cascadePath, this.#cascadeStack);
184
+ }
185
+ resolveAsync(token, options) {
186
+ if (options === undefined) {
187
+ return this.#resolver.resolveAsyncFromCascade(token);
188
+ }
189
+ return this.#resolver.resolveAsync(token, options, [...this.#cascadePath], [...this.#cascadeStack]);
190
+ }
191
+ resolveOptional(token, options) {
192
+ return this.#resolver.resolveOptional(token, options, this.#cascadePath, this.#cascadeStack);
193
+ }
194
+ resolveOptionalAsync(token, options) {
195
+ return this.#resolver.resolveOptionalAsync(token, options, [...this.#cascadePath], [...this.#cascadeStack]);
196
+ }
197
+ resolveAll(token, options) {
198
+ return this.#resolver.resolveAll(token, options, this.#cascadePath, this.#cascadeStack);
199
+ }
200
+ resolveAllAsync(token, options) {
201
+ return this.#resolver.resolveAllAsync(token, options, [...this.#cascadePath], [...this.#cascadeStack]);
202
+ }
203
+ }
101
204
  class DefaultConstraintContext {
102
205
  resolutionPath;
103
206
  resolutionStack;
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/resolution/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/resolution/environment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instantiation-plan.d.ts","sourceRoot":"","sources":["../../src/resolution/instantiation-plan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAgB,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM1F;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,MAAgC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,UAAU,CAAC;AAUxF;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC;IACpE,wFAAwF;IACxF,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IAC7D,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IACnD,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC7E,0FAA0F;IAC1F,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,gCAAgC,GAAG,IAAI,CAAC;IACpG,wFAAwF;IACxF,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC;IACtD,qFAAqF;IACrF,cAAc,CACZ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EACnC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,OAAO,CAAC;CACZ;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,qBAAa,yBAAyB;;IAGpC,YAAY,IAAI,EAAE,qBAAqB,EAEtC;IAED,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;KAAE,GAAG,8BAA8B,CAIzF;CA+LF"}
1
+ {"version":3,"file":"instantiation-plan.d.ts","sourceRoot":"","sources":["../../src/resolution/instantiation-plan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM5E;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,MAAgC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,UAAU,CAAC;AAUxF;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC;IACpE,wFAAwF;IACxF,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IAC7D,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IACnD,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC7E,0FAA0F;IAC1F,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,gCAAgC,GAAG,IAAI,CAAC;IACpG,wFAAwF;IACxF,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC;IACtD,qFAAqF;IACrF,cAAc,CACZ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EACnC,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,GACtC,OAAO,CAAC;CACZ;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,qBAAa,yBAAyB;;IAGpC,YAAY,IAAI,EAAE,qBAAqB,EAEtC;IAED,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;KAAE,GAAG,8BAA8B,CAIzF;CA+LF"}
@@ -155,7 +155,7 @@ export class InstantiationPlanCompiler {
155
155
  return () => value;
156
156
  }
157
157
  }
158
- const scope = binding.scope ?? "transient";
158
+ const scope = binding.scope;
159
159
  if (scope === "singleton") {
160
160
  // Cached-singleton read; the first materialization escapes so it sees the same ancestors
161
161
  // (and therefore the same cycle detection) the interpreted path would have built.
@@ -1 +1 @@
1
- {"version":3,"file":"instantiation-plan.js","sourceRoot":"","sources":["../../src/resolution/instantiation-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instantiation-plan.js","sourceRoot":"","sources":["../../src/resolution/instantiation-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/resolution/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEtG;;GAEG;AACH,qBAAa,gBAAgB;;IAO3B,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAKjH;IAED,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAMpF;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,sFAAsF;IACtF,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GACvC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAEvD;IAED,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAClC,IAAI,CAGN;IAEK,aAAa,CAAC,KAAK,CAAC,KAAK,EAC7B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,KAAK,CAAC,CAmChB;IAED,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAC3B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,KAAK,CA0CP;IAEK,eAAe,CAAC,KAAK,CAAC,KAAK,EAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqCf;IAED,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CAsC/G;IACD,gFAAgF;IAChF,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/resolution/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEtG;;GAEG;AACH,qBAAa,gBAAgB;;IAY3B,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAOjH;IAED,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAGpF;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,sFAAsF;IACtF,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GACvC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAavD;IAED,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAClC,IAAI,CAGN;IAEK,aAAa,CAAC,KAAK,CAAC,KAAK,EAC7B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,KAAK,CAAC,CA2BhB;IAED,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAC3B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,KAAK,CAiCP;IAEK,eAAe,CAAC,KAAK,CAAC,KAAK,EAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC,CA6Bf;IAED,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CA6B/G;IAED,gFAAgF;IAChF,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
@@ -9,17 +9,20 @@ export class LifecycleManager {
9
9
  #activationHooks;
10
10
  #deactivationHooks;
11
11
  #activationVersion = 0;
12
+ // One-entry cache in front of the map: a resolve loop asks about the same token over and over,
13
+ // and registration is the only thing that can change the answer.
14
+ #cachedToken;
15
+ #cachedHooks;
12
16
  registerActivation(token, handler) {
13
17
  this.#activationVersion += 1;
18
+ this.#cachedToken = undefined;
19
+ this.#cachedHooks = undefined;
14
20
  // ✓ TS6.0: Map.getOrInsert (ES2025)
15
21
  const list = (this.#activationHooks ??= new Map()).getOrInsert(token, []);
16
22
  list.push(handler);
17
23
  }
18
24
  hasActivationHandlers(token) {
19
- if (this.#activationHooks === undefined) {
20
- return false;
21
- }
22
- const list = this.#activationHooks.get(token);
25
+ const list = this.activationHandlersFor(token);
23
26
  return list !== undefined && list.length > 0;
24
27
  }
25
28
  get activationVersion() {
@@ -27,7 +30,18 @@ export class LifecycleManager {
27
30
  }
28
31
  /** Container-level activation handlers for a token — hot-path accessor, no copies. */
29
32
  activationHandlersFor(token) {
30
- return this.#activationHooks?.get(token);
33
+ const hooks = this.#activationHooks;
34
+ if (hooks === undefined) {
35
+ return undefined;
36
+ }
37
+ const key = token;
38
+ if (key === this.#cachedToken) {
39
+ return this.#cachedHooks;
40
+ }
41
+ const list = hooks.get(key);
42
+ this.#cachedToken = key;
43
+ this.#cachedHooks = list;
44
+ return list;
31
45
  }
32
46
  registerDeactivation(token, handler) {
33
47
  const list = (this.#deactivationHooks ??= new Map()).getOrInsert(token, []);
@@ -36,18 +50,10 @@ export class LifecycleManager {
36
50
  async runActivation(resolutionContext, binding, instance, metadataReader) {
37
51
  let activatedInstance = instance;
38
52
  // 1. @postConstruct() — after TC39 construction (constructor + accessor addInitializer callbacks)
39
- if (binding.kind === "class") {
40
- const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
41
- if (lifecycle?.postConstruct && lifecycle.postConstruct.length > 0) {
42
- for (const methodName of lifecycle.postConstruct) {
43
- const method = activatedInstance[methodName];
44
- if (typeof method === "function") {
45
- const hookResult = method.call(activatedInstance);
46
- if (hookResult instanceof Promise) {
47
- await hookResult;
48
- }
49
- }
50
- }
53
+ for (const methodName of lifecycleMethods(binding, metadataReader, "postConstruct")) {
54
+ const hookResult = callHook(activatedInstance, methodName);
55
+ if (hookResult instanceof Promise) {
56
+ await hookResult;
51
57
  }
52
58
  }
53
59
  // 2. per-binding onActivation
@@ -68,18 +74,9 @@ export class LifecycleManager {
68
74
  runActivationSync(resolutionContext, binding, instance, metadataReader) {
69
75
  let activatedInstance = instance;
70
76
  // 1. @postConstruct() — must be sync (instance fully constructed per TC39 order)
71
- if (binding.kind === "class") {
72
- const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
73
- if (lifecycle?.postConstruct && lifecycle.postConstruct.length > 0) {
74
- for (const methodName of lifecycle.postConstruct) {
75
- const method = activatedInstance[methodName];
76
- if (typeof method === "function") {
77
- const hookResult = method.call(activatedInstance);
78
- if (hookResult instanceof Promise) {
79
- throw new AsyncActivationError(tokenName(binding.token), "postConstruct", methodName);
80
- }
81
- }
82
- }
77
+ for (const methodName of lifecycleMethods(binding, metadataReader, "postConstruct")) {
78
+ if (callHook(activatedInstance, methodName) instanceof Promise) {
79
+ throw new AsyncActivationError(tokenName(binding.token), "postConstruct", methodName);
83
80
  }
84
81
  }
85
82
  // 2. per-binding onActivation (must be sync)
@@ -124,18 +121,10 @@ export class LifecycleManager {
124
121
  }
125
122
  }
126
123
  // 3. @preDestroy() — all methods in declaration order
127
- if (binding.kind === "class") {
128
- const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
129
- if (lifecycle?.preDestroy && lifecycle.preDestroy.length > 0) {
130
- for (const methodName of lifecycle.preDestroy) {
131
- const method = instance[methodName];
132
- if (typeof method === "function") {
133
- const hookResult = method.call(instance);
134
- if (hookResult instanceof Promise) {
135
- await hookResult;
136
- }
137
- }
138
- }
124
+ for (const methodName of lifecycleMethods(binding, metadataReader, "preDestroy")) {
125
+ const hookResult = callHook(instance, methodName);
126
+ if (hookResult instanceof Promise) {
127
+ await hookResult;
139
128
  }
140
129
  }
141
130
  }
@@ -160,18 +149,9 @@ export class LifecycleManager {
160
149
  }
161
150
  }
162
151
  // 3. @preDestroy()
163
- if (binding.kind === "class") {
164
- const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
165
- if (lifecycle?.preDestroy && lifecycle.preDestroy.length > 0) {
166
- for (const methodName of lifecycle.preDestroy) {
167
- const method = instance[methodName];
168
- if (typeof method === "function") {
169
- const hookResult = method.call(instance);
170
- if (hookResult instanceof Promise) {
171
- throw new AsyncDeactivationError(tokenDisplayName);
172
- }
173
- }
174
- }
152
+ for (const methodName of lifecycleMethods(binding, metadataReader, "preDestroy")) {
153
+ if (callHook(instance, methodName) instanceof Promise) {
154
+ throw new AsyncDeactivationError(tokenDisplayName);
175
155
  }
176
156
  }
177
157
  }
@@ -180,4 +160,17 @@ export class LifecycleManager {
180
160
  return this.#activationHooks !== undefined;
181
161
  }
182
162
  }
163
+ const NO_METHODS = [];
164
+ /** The `@postConstruct` / `@preDestroy` methods a binding declares — only a class can declare any. */
165
+ function lifecycleMethods(binding, metadataReader, phase) {
166
+ if (binding.kind !== "class") {
167
+ return NO_METHODS;
168
+ }
169
+ return metadataReader.getLifecycleMetadata(binding.target)?.[phase] ?? NO_METHODS;
170
+ }
171
+ /** Invokes a hook by name, tolerating a name whose member is not (or no longer) a method. */
172
+ function callHook(instance, methodName) {
173
+ const method = instance[methodName];
174
+ return typeof method === "function" ? method.call(instance) : undefined;
175
+ }
183
176
  //# sourceMappingURL=lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/resolution/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/resolution/lifecycle.ts"],"names":[],"mappings":"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"}