@codefast/di 0.5.0-canary.7 → 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 (114) hide show
  1. package/CHANGELOG.md +205 -0
  2. package/README.md +6 -2
  3. package/dist/binding.d.ts +85 -24
  4. package/dist/binding.d.ts.map +1 -1
  5. package/dist/binding.js +55 -0
  6. package/dist/binding.js.map +1 -1
  7. package/dist/constructor-type.d.ts +4 -5
  8. package/dist/constructor-type.d.ts.map +1 -1
  9. package/dist/container/binding-builders.d.ts +32 -11
  10. package/dist/container/binding-builders.d.ts.map +1 -1
  11. package/dist/container/binding-builders.js +144 -192
  12. package/dist/container/binding-builders.js.map +1 -1
  13. package/dist/container/container.d.ts.map +1 -1
  14. package/dist/container/container.js +141 -201
  15. package/dist/container/container.js.map +1 -1
  16. package/dist/decorators/inject.d.ts +2 -4
  17. package/dist/decorators/inject.d.ts.map +1 -1
  18. package/dist/decorators/inject.js.map +1 -1
  19. package/dist/errors.d.ts +24 -0
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +30 -0
  22. package/dist/errors.js.map +1 -1
  23. package/dist/index.d.ts +1 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +3 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/introspection/inspector.d.ts +0 -1
  28. package/dist/introspection/inspector.d.ts.map +1 -1
  29. package/dist/introspection/inspector.js +3 -8
  30. package/dist/introspection/inspector.js.map +1 -1
  31. package/dist/metadata/metadata-keys.d.ts +3 -6
  32. package/dist/metadata/metadata-keys.d.ts.map +1 -1
  33. package/dist/metadata/metadata-keys.js +3 -6
  34. package/dist/metadata/metadata-keys.js.map +1 -1
  35. package/dist/registry.d.ts +14 -2
  36. package/dist/registry.d.ts.map +1 -1
  37. package/dist/registry.js +81 -78
  38. package/dist/registry.js.map +1 -1
  39. package/dist/resolution/activation-need.d.ts +27 -0
  40. package/dist/resolution/activation-need.d.ts.map +1 -0
  41. package/dist/resolution/activation-need.js +68 -0
  42. package/dist/resolution/activation-need.js.map +1 -0
  43. package/dist/resolution/binding-lookup-cache.d.ts +41 -0
  44. package/dist/resolution/binding-lookup-cache.d.ts.map +1 -0
  45. package/dist/resolution/binding-lookup-cache.js +118 -0
  46. package/dist/resolution/binding-lookup-cache.js.map +1 -0
  47. package/dist/resolution/binding-scope.d.ts +5 -2
  48. package/dist/resolution/binding-scope.d.ts.map +1 -1
  49. package/dist/resolution/binding-scope.js +6 -17
  50. package/dist/resolution/binding-scope.js.map +1 -1
  51. package/dist/resolution/binding-select.d.ts +8 -1
  52. package/dist/resolution/binding-select.d.ts.map +1 -1
  53. package/dist/resolution/binding-select.js +14 -36
  54. package/dist/resolution/binding-select.js.map +1 -1
  55. package/dist/resolution/class-introspector.d.ts +27 -0
  56. package/dist/resolution/class-introspector.d.ts.map +1 -0
  57. package/dist/resolution/class-introspector.js +60 -0
  58. package/dist/resolution/class-introspector.js.map +1 -0
  59. package/dist/resolution/diagnostics.d.ts +41 -0
  60. package/dist/resolution/diagnostics.d.ts.map +1 -0
  61. package/dist/resolution/diagnostics.js +18 -0
  62. package/dist/resolution/diagnostics.js.map +1 -0
  63. package/dist/resolution/environment.d.ts +48 -1
  64. package/dist/resolution/environment.d.ts.map +1 -1
  65. package/dist/resolution/environment.js +134 -5
  66. package/dist/resolution/environment.js.map +1 -1
  67. package/dist/resolution/instantiation-plan.d.ts +15 -15
  68. package/dist/resolution/instantiation-plan.d.ts.map +1 -1
  69. package/dist/resolution/instantiation-plan.js +69 -49
  70. package/dist/resolution/instantiation-plan.js.map +1 -1
  71. package/dist/resolution/lifecycle.d.ts +2 -0
  72. package/dist/resolution/lifecycle.d.ts.map +1 -1
  73. package/dist/resolution/lifecycle.js +60 -62
  74. package/dist/resolution/lifecycle.js.map +1 -1
  75. package/dist/resolution/resolution-path.d.ts +84 -17
  76. package/dist/resolution/resolution-path.d.ts.map +1 -1
  77. package/dist/resolution/resolution-path.js +68 -23
  78. package/dist/resolution/resolution-path.js.map +1 -1
  79. package/dist/resolution/resolve-options.d.ts +41 -4
  80. package/dist/resolution/resolve-options.d.ts.map +1 -1
  81. package/dist/resolution/resolve-options.js +25 -1
  82. package/dist/resolution/resolve-options.js.map +1 -1
  83. package/dist/resolution/resolver.d.ts +33 -10
  84. package/dist/resolution/resolver.d.ts.map +1 -1
  85. package/dist/resolution/resolver.js +471 -830
  86. package/dist/resolution/resolver.js.map +1 -1
  87. package/dist/resolution/scope.d.ts +11 -15
  88. package/dist/resolution/scope.d.ts.map +1 -1
  89. package/dist/resolution/scope.js +55 -43
  90. package/dist/resolution/scope.js.map +1 -1
  91. package/package.json +10 -106
  92. package/src/binding.ts +146 -24
  93. package/src/constructor-type.ts +4 -5
  94. package/src/container/binding-builders.ts +184 -284
  95. package/src/container/container.ts +161 -221
  96. package/src/decorators/inject.ts +3 -5
  97. package/src/errors.ts +38 -0
  98. package/src/index.ts +4 -1
  99. package/src/introspection/inspector.ts +3 -9
  100. package/src/metadata/metadata-keys.ts +3 -6
  101. package/src/registry.ts +90 -94
  102. package/src/resolution/activation-need.ts +85 -0
  103. package/src/resolution/binding-lookup-cache.ts +148 -0
  104. package/src/resolution/binding-scope.ts +6 -17
  105. package/src/resolution/binding-select.ts +15 -39
  106. package/src/resolution/class-introspector.ts +74 -0
  107. package/src/resolution/diagnostics.ts +43 -0
  108. package/src/resolution/environment.ts +181 -5
  109. package/src/resolution/instantiation-plan.ts +116 -64
  110. package/src/resolution/lifecycle.ts +69 -62
  111. package/src/resolution/resolution-path.ts +122 -43
  112. package/src/resolution/resolve-options.ts +51 -4
  113. package/src/resolution/resolver.ts +649 -1081
  114. package/src/resolution/scope.ts +58 -47
@@ -1,24 +1,35 @@
1
1
  /**
2
- * Fluent binding-builder chain behind `container.bind()` / `container.rebind()`.
2
+ * The fluent chain `bind()` returns: it registers the binding and refines it in place.
3
3
  *
4
- * Every builder commits eagerly on construction and re-commits (replacing the
5
- * previous binding by id) whenever a later fluent call refines the binding —
6
- * so a chain left half-finished is still a valid registration.
4
+ * @see `ARCHITECTURE.md` — why one object plays every role, and what pins the ordering.
7
5
  */
8
- import type { AliasBindingBuilder, Binding, BindingBuilder, BindToBuilder, ConstantBindingBuilder } from "#/binding";
6
+ import type { AliasBindingBuilder, BindingBuilder, BindToBuilder, ConstantBindingBuilder, ScopedBindingBuilder, SingletonBindingBuilder, SingletonLifecycleBuilder, TransientBindingBuilder } from "#/binding";
9
7
  import type { InjectableDependency, ResolvedDependencyValue } from "#/decorators/inject";
8
+ import type { BindingRegistry } from "#/registry";
10
9
  import type { Token } from "#/token";
11
- import type { BindingIdentifier, Constructor, ResolutionContext } from "#/types";
10
+ import type { ActivationHandler, BindingIdentifier, ConstraintContext, Constructor, DeactivationHandler, ResolutionContext } from "#/types";
12
11
  /**
13
- * @since 0.5.0-canary.7
12
+ * Where a chain registers, and on whose behalf.
13
+ *
14
+ * @remarks Built once per container and shared by every chain it creates. `moduleBindingIds` is
15
+ * present exactly when the chain belongs to a module load.
16
+ *
17
+ * @since 0.5.0-canary.8
14
18
  */
15
- export type CommitFn = <Value>(binding: Binding<Value>, previousId?: BindingIdentifier) => BindingIdentifier;
19
+ export interface BindingRegistration {
20
+ readonly registry: BindingRegistry;
21
+ readonly moduleBindingIds: Array<BindingIdentifier> | undefined;
22
+ }
16
23
  /**
17
- * @since 0.5.0-canary.7
24
+ * The one builder behind `bind()` and every `to*()` return type. Each interface exposes only the
25
+ * calls that are legal at that point in the chain; the runtime object is shared because every
26
+ * refinement is the same operation — narrow the registered binding, keep its id.
27
+ *
28
+ * @since 0.5.0-canary.8
18
29
  */
19
- export declare class BindingEntry<Value> implements BindToBuilder<Value> {
30
+ export declare class BindingChain<Value> implements AliasBindingBuilder, BindingBuilder<Value>, BindToBuilder<Value>, ConstantBindingBuilder<Value>, ScopedBindingBuilder<Value>, SingletonBindingBuilder<Value>, SingletonLifecycleBuilder<Value>, TransientBindingBuilder<Value> {
20
31
  #private;
21
- constructor(token: Token<Value> | Constructor<Value>, commitBinding: CommitFn);
32
+ constructor(token: Token<Value> | Constructor<Value>, registration: BindingRegistration);
22
33
  to(type: Constructor<Value>): BindingBuilder<Value>;
23
34
  toSelf(): BindingBuilder<Value>;
24
35
  toConstantValue(value: Value): ConstantBindingBuilder<Value>;
@@ -31,5 +42,15 @@ export declare class BindingEntry<Value> implements BindToBuilder<Value> {
31
42
  [K in keyof Deps]: ResolvedDependencyValue<NoInfer<Deps>[K]>;
32
43
  }) => Promise<Value>, deps: Deps): BindingBuilder<Value>;
33
44
  toAlias(target: Token<Value> | Constructor<Value>): AliasBindingBuilder;
45
+ when(predicate: (ctx: ConstraintContext) => boolean): this;
46
+ whenNamed(name: string): this;
47
+ whenTagged(tag: string, value: unknown): this;
48
+ whenDefault(): this;
49
+ singleton(): SingletonBindingBuilder<Value>;
50
+ transient(): TransientBindingBuilder<Value>;
51
+ scoped(): ScopedBindingBuilder<Value>;
52
+ onActivation(fn: ActivationHandler<Value>): this;
53
+ onDeactivation(fn: DeactivationHandler<Value>): this;
54
+ id(): BindingIdentifier;
34
55
  }
35
56
  //# sourceMappingURL=binding-builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"binding-builders.d.ts","sourceRoot":"","sources":["../../src/container/binding-builders.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,mBAAmB,EACnB,OAAO,EACP,cAAc,EAEd,aAAa,EACb,sBAAsB,EAMvB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAEV,iBAAiB,EAEjB,WAAW,EAEX,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;AAsD7G;;GAEG;AACH,qBAAa,YAAY,CAAC,KAAK,CAAE,YAAW,aAAa,CAAC,KAAK,CAAC;;IAI9D,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,QAAQ,EAG5E;IAED,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAMlD;IAED,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAS9B;IAED,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAE3D;IAED,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAM3E;IAED,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAMzF;IAED,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS,aAAa,CAAC,oBAAoB,CAAC,EAC/D,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE;SAAG,CAAC,IAAI,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,KAAK,EAC7F,IAAI,EAAE,IAAI,GACT,cAAc,CAAC,KAAK,CAAC,CAYvB;IAED,eAAe,CAAC,KAAK,CAAC,IAAI,SAAS,aAAa,CAAC,oBAAoB,CAAC,EACpE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE;SAAG,CAAC,IAAI,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,OAAO,CAAC,KAAK,CAAC,EACtG,IAAI,EAAE,IAAI,GACT,cAAc,CAAC,KAAK,CAAC,CAYvB;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAEtE;CACF"}
1
+ {"version":3,"file":"binding-builders.d.ts","sourceRoot":"","sources":["../../src/container/binding-builders.ts"],"names":[],"mappings":"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"}
@@ -1,247 +1,199 @@
1
- import { DEFAULT_BINDING_SLOT, generateBindingId } from "#/binding";
1
+ import { bindingSlotEquals, clearBindingFrame, createBinding, DEFAULT_BINDING_SLOT, refinableFields } from "#/binding";
2
2
  import { normalizeToDescriptor } from "#/decorators/inject";
3
+ import { ChainNotRegisteredError, SelfBindingRequiresClassError } from "#/errors";
4
+ import { tokenName } from "#/token";
3
5
  function updateSlotTag(slot, tag, value) {
4
- const existing = [...slot.tags];
5
- const idx = existing.findIndex(([k]) => k === tag);
6
- if (idx !== -1) {
7
- existing[idx] = [tag, value];
6
+ const tags = [...slot.tags];
7
+ const existingIndex = tags.findIndex(([key]) => key === tag);
8
+ if (existingIndex === -1) {
9
+ tags.push([tag, value]);
8
10
  }
9
11
  else {
10
- existing.push([tag, value]);
12
+ tags[existingIndex] = [tag, value];
11
13
  }
12
- return { ...slot, tags: existing };
14
+ return { ...slot, tags };
13
15
  }
14
- // ── SlotBuilder ───────────────────────────────────────────────────────────────
15
- class SlotBuilder {
16
- slot = DEFAULT_BINDING_SLOT; // ✓ T3-1: no redundant spread
17
- predicate;
18
- committedId;
19
- when(predicate) {
20
- this.predicate = predicate;
21
- this.commit();
22
- return this;
23
- }
24
- whenNamed(name) {
25
- this.slot = { ...this.slot, name };
26
- this.commit();
27
- return this;
28
- }
29
- whenTagged(tag, value) {
30
- this.slot = updateSlotTag(this.slot, tag, value);
31
- this.commit();
32
- return this;
33
- }
34
- whenDefault() {
35
- return this;
36
- }
37
- id() {
38
- return this.committedId;
16
+ // True when re-adding `restored` would immediately be displaced again by `current`
17
+ // (both slot-based with equal slots) — in that case the replacement was legitimate.
18
+ function displacesRestoredBinding(current, restored) {
19
+ const currentIsPurePredicate = current.predicate !== undefined && current.slot.name === undefined && current.slot.tags.length === 0;
20
+ if (currentIsPurePredicate) {
21
+ return false;
22
+ }
23
+ return bindingSlotEquals(current.slot, restored.slot);
24
+ }
25
+ /** Record a module's binding id, dropping the id the chain re-slotted away from. */
26
+ function trackBindingForModule(ids, id, previousId) {
27
+ if (previousId !== undefined) {
28
+ const previousIndex = ids.indexOf(previousId);
29
+ if (previousIndex !== -1) {
30
+ ids.splice(previousIndex, 1);
31
+ }
39
32
  }
33
+ ids.push(id);
40
34
  }
41
- // ── BindingEntry ──────────────────────────────────────────────────────────────
35
+ // ── BindingChain ──────────────────────────────────────────────────────────────
42
36
  /**
43
- * @since 0.5.0-canary.7
37
+ * The one builder behind `bind()` and every `to*()` return type. Each interface exposes only the
38
+ * calls that are legal at that point in the chain; the runtime object is shared because every
39
+ * refinement is the same operation — narrow the registered binding, keep its id.
40
+ *
41
+ * @since 0.5.0-canary.8
44
42
  */
45
- export class BindingEntry {
43
+ export class BindingChain {
44
+ // Undefined until a `to*()` call registers the binding.
45
+ #binding;
46
+ // Allocated only by a chain that actually displaces something — most never do.
47
+ #displacedByChain;
46
48
  #token;
47
- #commitBinding;
48
- constructor(token, commitBinding) {
49
+ #registration;
50
+ constructor(token, registration) {
49
51
  this.#token = token;
50
- this.#commitBinding = commitBinding;
52
+ this.#registration = registration;
53
+ }
54
+ /** The registered binding, or a loud failure if no `to*()` has run yet. */
55
+ #registered() {
56
+ if (this.#binding === undefined) {
57
+ throw new ChainNotRegisteredError(tokenName(this.#token));
58
+ }
59
+ return this.#binding;
60
+ }
61
+ #register(partial) {
62
+ // Each `to*()` starts its own registration, so anything a previous one displaced is not this
63
+ // registration's to restore.
64
+ this.#displacedByChain = undefined;
65
+ this.#binding = createBinding(partial, this.#token, DEFAULT_BINDING_SLOT, undefined);
66
+ this.#commit(this.#binding, undefined);
67
+ return this;
51
68
  }
69
+ // ── Registration ───────────────────────────────────────────────────────────
52
70
  to(type) {
53
- return new ConstraintBuilder(this.#token, { kind: "class", target: type, scope: "transient" }, this.#commitBinding);
71
+ return this.#register({ kind: "class", target: type, scope: "transient" });
54
72
  }
55
73
  toSelf() {
56
74
  if (typeof this.#token !== "function") {
57
- throw new Error("toSelf() requires token to be a Constructor");
75
+ throw new SelfBindingRequiresClassError(tokenName(this.#token));
58
76
  }
59
- return new ConstraintBuilder(this.#token, { kind: "class", target: this.#token, scope: "transient" }, this.#commitBinding);
77
+ return this.#register({ kind: "class", target: this.#token, scope: "transient" });
60
78
  }
61
79
  toConstantValue(value) {
62
- return new ConstantBuilder(this.#token, value, this.#commitBinding);
80
+ return this.#register({ kind: "constant", scope: "singleton", value });
63
81
  }
64
82
  toDynamic(factory) {
65
- return new ConstraintBuilder(this.#token, { kind: "dynamic", factory, scope: "transient" }, this.#commitBinding);
83
+ return this.#register({ kind: "dynamic", factory, scope: "transient" });
66
84
  }
67
85
  toDynamicAsync(factory) {
68
- return new ConstraintBuilder(this.#token, { kind: "dynamic-async", factory, scope: "transient" }, this.#commitBinding);
86
+ return this.#register({ kind: "dynamic-async", factory, scope: "transient" });
69
87
  }
70
88
  toResolved(factory, deps) {
71
- const normalizedDeps = deps.map((dependency) => normalizeToDescriptor(dependency));
72
- return new ConstraintBuilder(this.#token, {
89
+ return this.#register({
73
90
  kind: "resolved",
91
+ deps: deps.map((dependency) => normalizeToDescriptor(dependency)),
74
92
  factory: factory,
75
- deps: normalizedDeps,
76
93
  scope: "transient",
77
- }, this.#commitBinding);
94
+ });
78
95
  }
79
96
  toResolvedAsync(factory, deps) {
80
- const normalizedDeps = deps.map((dependency) => normalizeToDescriptor(dependency));
81
- return new ConstraintBuilder(this.#token, {
97
+ return this.#register({
82
98
  kind: "resolved-async",
99
+ deps: deps.map((dependency) => normalizeToDescriptor(dependency)),
83
100
  factory: factory,
84
- deps: normalizedDeps,
85
101
  scope: "transient",
86
- }, this.#commitBinding);
102
+ });
87
103
  }
88
104
  toAlias(target) {
89
- return new AliasBuilder(this.#token, target, this.#commitBinding);
90
- }
91
- }
92
- // ── ConstraintBuilder ─────────────────────────────────────────────────────────
93
- class ConstraintBuilder extends SlotBuilder {
94
- #token;
95
- #partial;
96
- #commitBinding;
97
- constructor(token, partial, commitBinding) {
98
- super();
99
- this.#token = token;
100
- this.#partial = partial;
101
- this.#commitBinding = commitBinding;
102
- this.commit();
103
- }
104
- commit() {
105
- const previousId = this.committedId;
106
- const binding = {
107
- ...this.#partial,
108
- id: generateBindingId(),
109
- inFlight: false,
110
- token: this.#token,
111
- slot: this.slot,
112
- predicate: this.predicate,
113
- };
114
- this.committedId = this.#commitBinding(binding, previousId);
105
+ return this.#register({ kind: "alias", scope: "transient", target });
106
+ }
107
+ // ── Refinement ─────────────────────────────────────────────────────────────
108
+ // Slot and predicate are what the registry indexes on, so a re-slot rebuilds the binding and
109
+ // re-registers it — under the original id, keeping `id()` stable for the whole chain.
110
+ #reslot(slot, predicate) {
111
+ const previous = this.#registered();
112
+ this.#binding = createBinding(previous, previous.token, slot, predicate, previous.id);
113
+ this.#commit(this.#binding, previous.id);
114
+ return this;
115
115
  }
116
- singleton() {
117
- const previousId = this.committedId;
118
- this.committedId = undefined;
119
- return new ScopeBuilder(this.#token, { ...this.#partial, scope: "singleton" }, this.slot, this.predicate, this.#commitBinding, previousId);
116
+ #withScope(scope) {
117
+ const binding = this.#registered();
118
+ refinableFields(binding).scope = scope;
119
+ // The frame reports the scope, so a resolve before this call memoized the previous one.
120
+ clearBindingFrame(binding);
121
+ this.#registration.registry.touch();
122
+ return this;
120
123
  }
121
- transient() {
122
- const previousId = this.committedId;
123
- this.committedId = undefined;
124
- return new ScopeBuilder(this.#token, { ...this.#partial, scope: "transient" }, this.slot, this.predicate, this.#commitBinding, previousId);
124
+ when(predicate) {
125
+ return this.#reslot(this.#registered().slot, predicate);
125
126
  }
126
- scoped() {
127
- const previousId = this.committedId;
128
- this.committedId = undefined;
129
- return new ScopeBuilder(this.#token, { ...this.#partial, scope: "scoped" }, this.slot, this.predicate, this.#commitBinding, previousId);
127
+ whenNamed(name) {
128
+ return this.#reslot({ ...this.#registered().slot, name }, this.#registered().predicate);
130
129
  }
131
- }
132
- // ── ScopeBuilder ─────────────────────────────────────────────────────────────
133
- class ScopeBuilder {
134
- #onActivation;
135
- #onDeactivation;
136
- #committedId;
137
- #token;
138
- #partial;
139
- #slot;
140
- #predicate;
141
- #commitBinding;
142
- #initialPreviousId;
143
- constructor(token, partial, slot, predicate, commitBinding, initialPreviousId) {
144
- this.#token = token;
145
- this.#partial = partial;
146
- this.#slot = slot;
147
- this.#predicate = predicate;
148
- this.#commitBinding = commitBinding;
149
- this.#initialPreviousId = initialPreviousId;
150
- this.#commit();
151
- }
152
- #commit() {
153
- const previousId = this.#committedId ?? this.#initialPreviousId;
154
- const binding = {
155
- ...this.#partial,
156
- id: generateBindingId(),
157
- inFlight: false,
158
- token: this.#token,
159
- slot: this.#slot,
160
- predicate: this.#predicate,
161
- onActivation: this.#onActivation,
162
- onDeactivation: this.#onDeactivation,
163
- };
164
- this.#committedId = this.#commitBinding(binding, previousId);
130
+ whenTagged(tag, value) {
131
+ const binding = this.#registered();
132
+ return this.#reslot(updateSlotTag(binding.slot, tag, value), binding.predicate);
165
133
  }
166
- onActivation(fn) {
167
- this.#onActivation = fn;
168
- this.#commit();
134
+ whenDefault() {
135
+ // The default slot is what a fresh registration already has, so there is nothing to re-slot —
136
+ // but an unregistered chain must fail here exactly as it does in every other refinement.
137
+ this.#registered();
169
138
  return this;
170
139
  }
171
- onDeactivation(fn) {
172
- this.#onDeactivation = fn;
173
- this.#commit();
174
- return this;
140
+ singleton() {
141
+ return this.#withScope("singleton");
175
142
  }
176
- id() {
177
- return this.#committedId;
143
+ transient() {
144
+ return this.#withScope("transient");
178
145
  }
179
- }
180
- // ── ConstantBuilder ───────────────────────────────────────────────────────────
181
- class ConstantBuilder extends SlotBuilder {
182
- #onActivation;
183
- #onDeactivation;
184
- #token;
185
- #value;
186
- #commitBinding;
187
- constructor(token, value, commitBinding) {
188
- super();
189
- this.#token = token;
190
- this.#value = value;
191
- this.#commitBinding = commitBinding;
192
- this.commit();
193
- }
194
- commit() {
195
- const previousId = this.committedId;
196
- const binding = {
197
- kind: "constant",
198
- id: generateBindingId(),
199
- inFlight: false,
200
- token: this.#token,
201
- slot: this.slot,
202
- predicate: this.predicate,
203
- value: this.#value,
204
- scope: "singleton",
205
- onActivation: this.#onActivation,
206
- onDeactivation: this.#onDeactivation,
207
- };
208
- this.committedId = this.#commitBinding(binding, previousId);
146
+ scoped() {
147
+ return this.#withScope("scoped");
209
148
  }
210
149
  onActivation(fn) {
211
- this.#onActivation = fn;
212
- this.commit();
150
+ refinableFields(this.#registered()).onActivation = fn;
151
+ this.#registration.registry.touch();
213
152
  return this;
214
153
  }
215
154
  onDeactivation(fn) {
216
- this.#onDeactivation = fn;
217
- this.commit();
155
+ refinableFields(this.#registered()).onDeactivation = fn;
156
+ this.#registration.registry.touch();
218
157
  return this;
219
158
  }
220
- }
221
- // ── AliasBuilder ──────────────────────────────────────────────────────────────
222
- class AliasBuilder extends SlotBuilder {
223
- #token;
224
- #target;
225
- #commitBinding;
226
- constructor(token, target, commitBinding) {
227
- super();
228
- this.#token = token;
229
- this.#target = target;
230
- this.#commitBinding = commitBinding;
231
- this.commit();
232
- }
233
- commit() {
234
- const previousId = this.committedId;
235
- const binding = {
236
- kind: "alias",
237
- id: generateBindingId(),
238
- inFlight: false,
239
- token: this.#token,
240
- slot: this.slot,
241
- predicate: this.predicate,
242
- target: this.#target,
243
- };
244
- this.committedId = this.#commitBinding(binding, previousId);
159
+ id() {
160
+ return this.#registered().id;
161
+ }
162
+ // ── Registry ───────────────────────────────────────────────────────────────
163
+ /**
164
+ * Register `binding`, first removing `previousId` when the chain is re-slotting.
165
+ *
166
+ * @remarks A `when*()` that follows `to*()` re-slots an already-live binding and can displace one
167
+ * the final shape would never conflict with. Those stay parked in `#displacedByChain` until the
168
+ * chain settles, then get restored.
169
+ */
170
+ #commit(binding, previousId) {
171
+ const { registry, moduleBindingIds } = this.#registration;
172
+ // The registry is heterogeneous by design — one instance holds every value type — so the
173
+ // chain's `Binding<Value>` is erased once, here, rather than at each call site.
174
+ const registered = binding;
175
+ if (previousId !== undefined) {
176
+ registry.removeById(previousId);
177
+ }
178
+ const displaced = registry.add(registered);
179
+ if (displaced !== undefined) {
180
+ (this.#displacedByChain ??= []).push(displaced);
181
+ }
182
+ if (previousId !== undefined && this.#displacedByChain !== undefined) {
183
+ this.#restoreNonConflicting(registered, this.#displacedByChain);
184
+ }
185
+ if (moduleBindingIds !== undefined) {
186
+ trackBindingForModule(moduleBindingIds, registered.id, previousId);
187
+ }
188
+ }
189
+ #restoreNonConflicting(binding, displaced) {
190
+ for (let index = displaced.length - 1; index >= 0; index -= 1) {
191
+ const candidate = displaced[index];
192
+ if (!displacesRestoredBinding(binding, candidate)) {
193
+ this.#registration.registry.add(candidate);
194
+ displaced.splice(index, 1);
195
+ }
196
+ }
245
197
  }
246
198
  }
247
199
  //# sourceMappingURL=binding-builders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binding-builders.js","sourceRoot":"","sources":["../../src/container/binding-builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding-builders.js","sourceRoot":"","sources":["../../src/container/binding-builders.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/container/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/container/container.ts"],"names":[],"mappings":"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"}