@typewirets/core 0.1.0 → 0.2.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ # Changelog
2
+
3
+ ## 0.2.0
4
+
5
+ - **New: `container.preload(opts?)` creates singletons ahead of time,** so they can be read with `getInstanceSync` afterwards. Without options it creates every singleton bound at the time of the call; with `{ wires }`, only those wires and their imports. Creations run in parallel, wires that aren't singletons are skipped, and values already created are kept, so a later call creates only what is new. A failure rejects with that creation's own error, and the other creations still finish and are cached. New type: `PreloadOpts`. See "Preloading" in the README.
6
+ - **`container.getAllAsync()` is deprecated** in favour of `preload`. It resolves bindings one at a time and also creates a value for every transient binding. It still works.
7
+ - **A singleton is created once, even when `getSync` runs while it is being created.** `getSync` (and `getInstanceSync`) used to start a second creation when an async creation was already in flight, so early callers and later callers held different instances. It now throws `AsyncOnlyBinding`, marked `retriable` also when called as `container.getSync`, and leaves the in-flight creation alone. This mostly hit `createWith` wires, which always create asynchronously ([#21](https://github.com/typewirets/typewirets/issues/21)).
8
+ - **A creation started before `unbind` no longer touches the cache.** Its value still goes to the callers that asked for it, but the new binding's value is the one cached, and a failing old creation no longer clears the new binding's in-flight creation ([#21](https://github.com/typewirets/typewirets/issues/21)).
9
+ - **A failing creation started by `getSync` no longer causes an unhandled rejection.** When `getSync` or `getInstanceSync` started an async creation that later failed, and no `get` was waiting for it, Node reported an unhandled rejection, which ends the process by default. A `get` that joins the creation still receives the error.
10
+ - A test now pins that a value still being created when a wire is re-applied is kept ([#17](https://github.com/typewirets/typewirets/issues/17)).
11
+ - **Node.js 22 or later is required.** `engines.node` is now `>=22`, because Node.js 20 reached end-of-life on 30 April 2026. CI tests Node.js 22, 24 and 26.
12
+
13
+ ### Also in this release: changes prepared as 0.1.1, which was never published
14
+
15
+ Fixes three singleton-cache behaviours that diverged from the typewire contract shared with the Python and Go ports, and fixes loading the package with CommonJS `require()`.
16
+
17
+ - **A singleton whose value is falsy is still cached.** The cache lookup tested the stored value for truthiness, so a creator returning `0`, `""`, `false`, `null` or `undefined` ran again on every resolve. The lookup now checks whether an entry exists.
18
+ - **An override applied after the singleton is cached has no effect on that value.** `apply` (including `wire.withCreator(...).apply(container)`) unbound the existing token before binding the new wire, which also threw away the cached value. `apply` now only calls `bind`, and the container decides what happens to a value it already holds. `TypeWireContainer.bind` replaces the binding but keeps a value that already exists or is still being created, so the new binding only affects values not yet created in that container. An override applied before the first resolve still takes effect. To discard a cached value on purpose, call `container.unbind(wire.type)` before re-applying.
19
+ - **An override of an import applied after the importer is cached leaves the importer's value alone.** Because of the same `apply` change, the import keeps the instance already built through the importer, so callers that hold the importer and callers that resolve the import directly get the same value.
20
+ - **CommonJS `require()` works.** The package is `"type": "module"`, so Node loaded the CommonJS build in `dist/cjs` as an ES module: `require()` from plain Node (TypeScript compiled to CommonJS, ts-node) threw `ReferenceError: exports is not defined`. Bundlers, Jest and ESM `import` were not affected. The build now writes `dist/cjs/package.json` with `{"type":"commonjs"}`.
21
+
22
+ #### Notes for `BindingContext` implementers
23
+
24
+ - `bind` must replace an existing binding for the same type, because `apply` no longer unbinds first. Its return type is now `void | Promise<void>`, and `apply` awaits it.
25
+ - The Inversify adapter's `bind` now does the unbind itself, so its behaviour is unchanged: re-applying still discards Inversify's cached instance.
26
+
27
+ ## 0.2.0-rc.1
28
+
29
+ Release candidate for 0.2.0, with the same changes. They are listed under 0.2.0.
30
+
31
+ ## 0.1.0
32
+
33
+ - Initial release.
package/README.md CHANGED
@@ -109,6 +109,27 @@ const userServiceWire = typeWireOf({
109
109
  });
110
110
  ```
111
111
 
112
+ ### Preloading
113
+
114
+ Getting a value is async: `getInstance` returns a promise, because any creator, or an override applied later with `withCreator`, may be async. To read values synchronously, create them ahead of time with `container.preload`, then use `getInstanceSync`:
115
+
116
+ ```typescript
117
+ const container = new TypeWireContainer();
118
+ await shellWireGroup.apply(container);
119
+
120
+ // Startup: the wires the app needs first, and their imports, in parallel.
121
+ await container.preload({ wires: shellWireGroup.wires });
122
+
123
+ const config = configWire.getInstanceSync(container); // no await
124
+ ```
125
+
126
+ - `container.preload()` with no options creates every singleton bound at the time of the call. That suits small apps, servers and tests.
127
+ - `preload({ wires })` creates those wires and their imports. Call it once per phase of your app (startup, after login, when a feature loads), so each phase waits only for what it needs.
128
+ - Values already created are kept, so a later `preload` creates only what's new. Wires that aren't singletons are skipped, because their values aren't cached.
129
+ - If a creation fails, `preload` rejects with that creation's error; the other creations still finish and are cached.
130
+
131
+ `container.getAllAsync()` is deprecated in favour of `preload`: it resolves bindings one at a time and also creates every transient binding.
132
+
112
133
  ### Composing Services
113
134
 
114
135
  TypeWire makes it easy to compose and override services:
@@ -102,11 +102,13 @@ export interface ResolutionContext {
102
102
  */
103
103
  export interface BindingContext {
104
104
  /**
105
- * Binds a Typewire to the container.
105
+ * Binds a Typewire to the container, replacing any existing binding for the
106
+ * same type. What happens to a value the container already created for that
107
+ * type is up to the container.
106
108
  *
107
109
  * @param typeWire The Typewire to bind
108
110
  */
109
- bind(typeWire: AnyTypeWire): void;
111
+ bind(typeWire: AnyTypeWire): void | Promise<void>;
110
112
  /**
111
113
  * Removes a binding from the container.
112
114
  *
@@ -402,6 +404,14 @@ export declare class StandardTypeWire<T> implements TypeWire<T> {
402
404
  /**
403
405
  * Registers this provider with a dependency binder.
404
406
  *
407
+ * The binder owns its cached values: on a `TypeWireContainer`, re-applying a
408
+ * wire for a token that is already bound replaces the binding but keeps any
409
+ * value already created (or being created) for that token, so the new
410
+ * binding only takes effect for values not yet created in that container.
411
+ * Call `unbind` first to discard the cached value. An override that changes
412
+ * the scope (for example singleton to transient) does not reuse the cached
413
+ * value, because resolution follows the new binding's scope.
414
+ *
405
415
  * @param binder The dependency binder to register with
406
416
  * @returns A promise that resolves when registration is complete
407
417
  */
@@ -511,6 +521,17 @@ export interface TypeWireContianerOpts {
511
521
  * @template T The type of the action's result
512
522
  * @throws {TypeWireError | Error} If the action fails
513
523
  */
524
+ /**
525
+ * Options for {@link TypeWireContainer.preload}.
526
+ */
527
+ export interface PreloadOpts {
528
+ /**
529
+ * The wires to create, with the imports they resolve. Omit to create every
530
+ * singleton bound at the time of the call. Wires whose binding is not a
531
+ * singleton are skipped. To preload a group, pass its `wires`.
532
+ */
533
+ wires?: readonly AnyTypeWire[];
534
+ }
514
535
  export type SyncAction<T> = () => T;
515
536
  /**
516
537
  * An asynchronous action that can be passed to the ResolutionMonitor.
@@ -726,7 +747,8 @@ export declare class TypeWireContainer implements ResolutionContext, BindingCont
726
747
  */
727
748
  private getNextRequestId;
728
749
  /**
729
- * Binds a provider to the container.
750
+ * Binds a provider to the container, replacing any existing binding for the same type.
751
+ * A singleton instance already created for the type is kept; use `unbind` to discard it.
730
752
  * @param provider The provider to bind
731
753
  */
732
754
  bind(wire: AnyTypeWire): void;
@@ -760,8 +782,48 @@ export declare class TypeWireContainer implements ResolutionContext, BindingCont
760
782
  * @throws Error if the dependency is not found or if a circular dependency is detected
761
783
  */
762
784
  get<T>(typeSymbol: TypeSymbol<T>): Promise<T>;
785
+ /**
786
+ * Creates singleton values ahead of time, so they can be read synchronously
787
+ * with `getInstanceSync` (or `useTypeWire` in React) afterwards.
788
+ *
789
+ * Without `wires`, every singleton bound when you call it is created. With
790
+ * `wires`, only those wires and the imports they resolve are created. Wires
791
+ * whose binding is not a singleton (for example transient) are skipped:
792
+ * their values aren't cached, so there is nothing to read later. Values
793
+ * already created are kept, so calling `preload` again creates only what is
794
+ * new. Wires bound after the call are not included.
795
+ *
796
+ * Creations run in parallel. If one fails, the returned promise rejects
797
+ * with that creation's own error, as `Promise.all` does, and the other
798
+ * creations still finish and are cached. A wire in `wires` that isn't bound
799
+ * rejects with a `BindingNotFound` error.
800
+ *
801
+ * @param opts Optional settings; see {@link PreloadOpts}
802
+ * @returns A promise that resolves once every selected value is created
803
+ *
804
+ * @example
805
+ * ```typescript
806
+ * // At startup: everything the shell needs.
807
+ * await container.preload({ wires: [configWire, authWire] });
808
+ *
809
+ * // Later, when a feature loads:
810
+ * await reportsWireGroup.apply(container);
811
+ * await container.preload({ wires: reportsWireGroup.wires });
812
+ *
813
+ * // Small apps and tests: every bound singleton.
814
+ * await container.preload();
815
+ *
816
+ * const config = configWire.getInstanceSync(container);
817
+ * ```
818
+ */
819
+ preload(opts?: PreloadOpts): Promise<void>;
763
820
  /**
764
821
  * Gets all instances from the container asynchronously.
822
+ *
823
+ * @deprecated Use {@link TypeWireContainer.preload} to create singletons
824
+ * ahead of time, then read them with `getInstanceSync`. This method resolves
825
+ * bindings one at a time and also creates a value for every transient
826
+ * binding.
765
827
  * @returns A promise that resolves to a map of all instances
766
828
  */
767
829
  getAllAsync(): Promise<Map<symbol, unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -115,6 +115,14 @@ class StandardTypeWire {
115
115
  /**
116
116
  * Registers this provider with a dependency binder.
117
117
  *
118
+ * The binder owns its cached values: on a `TypeWireContainer`, re-applying a
119
+ * wire for a token that is already bound replaces the binding but keeps any
120
+ * value already created (or being created) for that token, so the new
121
+ * binding only takes effect for values not yet created in that container.
122
+ * Call `unbind` first to discard the cached value. An override that changes
123
+ * the scope (for example singleton to transient) does not reuse the cached
124
+ * value, because resolution follows the new binding's scope.
125
+ *
118
126
  * @param binder The dependency binder to register with
119
127
  * @returns A promise that resolves when registration is complete
120
128
  */
@@ -126,10 +134,7 @@ class StandardTypeWire {
126
134
  }
127
135
  }
128
136
  }
129
- if (binder.isBound(this.type)) {
130
- await binder.unbind(this.type);
131
- }
132
- binder.bind(this);
137
+ await binder.bind(this);
133
138
  }
134
139
  /**
135
140
  * Retrieves an instance of type T synchronously.
@@ -591,7 +596,8 @@ class ResolutionState {
591
596
  return this.bindings.has(typeSymbol.symbol);
592
597
  }
593
598
  /**
594
- * Registers a new TypeWire binding.
599
+ * Registers a TypeWire binding, replacing any existing binding for the same symbol.
600
+ * A singleton instance or in-flight resolution already held for the symbol is kept.
595
601
  * @param wire The TypeWire instance to register
596
602
  */
597
603
  bind(wire) {
@@ -607,6 +613,15 @@ class ResolutionState {
607
613
  this.singletons.delete(typeSymbol.symbol);
608
614
  this.resolutions.delete(typeSymbol.symbol);
609
615
  }
616
+ /**
617
+ * Checks if a singleton instance is cached for a type symbol.
618
+ * A cached instance may be any value, including falsy ones such as `0` or `null`.
619
+ * @param typeSymbol The type symbol to check
620
+ * @returns true if a singleton instance is cached, false otherwise
621
+ */
622
+ hasSingletonValue(typeSymbol) {
623
+ return this.singletons.has(typeSymbol.symbol);
624
+ }
610
625
  /**
611
626
  * Gets the cached singleton instance for a type symbol.
612
627
  * @template T The type of the singleton instance
@@ -629,21 +644,36 @@ class ResolutionState {
629
644
  * Registers a new resolution promise and sets up handlers to update the singleton cache.
630
645
  * This method ensures that singleton instances are properly cached once resolved
631
646
  * and that in-progress resolutions are tracked.
647
+ *
648
+ * A resolution only touches the cache while it is still the current one for its
649
+ * symbol. If the symbol was unbound while it was in flight, its value goes to
650
+ * its own callers but is never cached, and it never removes a newer resolution.
651
+ * The first value cached for a binding is kept: nothing else writes the cache
652
+ * while a current resolution is in flight, because `get` and `getSync` both
653
+ * check for one before creating.
632
654
  * @template T The type of the instance being resolved
633
655
  * @param typeSymbol The type symbol being resolved
634
656
  * @param created The promise that will resolve to the instance
635
657
  * @returns The updated promise that includes caching logic
636
658
  */
637
659
  registerResolution(typeSymbol, created) {
660
+ const symbol = typeSymbol.symbol;
661
+ // Reads `updated` before its declaration below. That is safe: `isCurrent` is
662
+ // only called from the `then`/`finally` callbacks, which always run later.
663
+ const isCurrent = () => this.resolutions.get(symbol) === updated;
638
664
  const updated = created
639
665
  .then((value) => {
640
- this.singletons.set(typeSymbol.symbol, value);
666
+ if (isCurrent()) {
667
+ this.singletons.set(symbol, value);
668
+ }
641
669
  return value;
642
670
  })
643
671
  .finally(() => {
644
- this.resolutions.delete(typeSymbol.symbol);
672
+ if (isCurrent()) {
673
+ this.resolutions.delete(symbol);
674
+ }
645
675
  });
646
- this.resolutions.set(typeSymbol.symbol, updated);
676
+ this.resolutions.set(symbol, updated);
647
677
  return updated;
648
678
  }
649
679
  /**
@@ -657,6 +687,15 @@ class ResolutionState {
657
687
  this.singletons.set(typeSymbol.symbol, result);
658
688
  }
659
689
  }
690
+ /**
691
+ * The error `getSync` throws for a singleton whose value is being created
692
+ * asynchronously. It is retriable: once the value is cached, `getSync` succeeds.
693
+ */
694
+ function singletonNotReady() {
695
+ const err = TypeWireError.asyncBindingOnly();
696
+ err.retriable = true;
697
+ return err;
698
+ }
660
699
  /**
661
700
  * Provides an isolated resolution context for a single dependency resolution chain.
662
701
  *
@@ -696,9 +735,8 @@ class ScopedResolutionContext {
696
735
  const creator = binding.creator;
697
736
  const scope = binding.scope ?? ScopeSingleton;
698
737
  if (scope === ScopeSingleton) {
699
- const singleton = this.resolutionState.getSingletonValue(typeSymbol);
700
- if (singleton) {
701
- return singleton;
738
+ if (this.resolutionState.hasSingletonValue(typeSymbol)) {
739
+ return this.resolutionState.getSingletonValue(typeSymbol);
702
740
  }
703
741
  const resolver = this.resolutionState.getRunningResolver(typeSymbol);
704
742
  if (resolver) {
@@ -725,6 +763,11 @@ class ScopedResolutionContext {
725
763
  * @returns An instance of type T
726
764
  * @throws Error if the dependency is not found, if the creator is asynchronous,
727
765
  * or if a circular dependency is detected
766
+ * @throws {TypeWireError} with reason `AsyncOnlyBinding` while a singleton's value
767
+ * is still being created, even if the binding now in place has a
768
+ * synchronous creator (for example, after a re-apply). The creator is not
769
+ * run again. The error is `retriable`: retry once the value is cached, or
770
+ * use `get`.
728
771
  */
729
772
  getSync(typeSymbol) {
730
773
  return this.resolutionRequestMonitor.monitor(typeSymbol, () => {
@@ -732,14 +775,23 @@ class ScopedResolutionContext {
732
775
  const creator = binding.creator;
733
776
  const scope = binding.scope ?? ScopeSingleton;
734
777
  if (scope === ScopeSingleton) {
735
- const singleton = this.resolutionState.getSingletonValue(typeSymbol);
736
- if (singleton) {
737
- return singleton;
778
+ if (this.resolutionState.hasSingletonValue(typeSymbol)) {
779
+ return this.resolutionState.getSingletonValue(typeSymbol);
780
+ }
781
+ // getSync cannot wait for a creation already in flight, and must not
782
+ // start a second one: tell the caller to retry later or use `get`.
783
+ if (this.resolutionState.getRunningResolver(typeSymbol)) {
784
+ throw singletonNotReady();
738
785
  }
739
786
  const result = creator(this);
740
787
  if (isPromise(result)) {
741
- this.resolutionState.registerResolution(typeSymbol, result);
742
- throw TypeWireError.asyncBindingOnly();
788
+ // No caller here awaits this creation. A later `get` joins it and
789
+ // receives any failure; without one, the failure must not surface as
790
+ // an unhandled rejection (which ends a Node process by default).
791
+ this.resolutionState
792
+ .registerResolution(typeSymbol, result)
793
+ .catch(() => { });
794
+ throw singletonNotReady();
743
795
  }
744
796
  this.resolutionState.registerSingleton(typeSymbol, result);
745
797
  return result;
@@ -801,7 +853,8 @@ class TypeWireContainer {
801
853
  return nextSequence;
802
854
  }
803
855
  /**
804
- * Binds a provider to the container.
856
+ * Binds a provider to the container, replacing any existing binding for the same type.
857
+ * A singleton instance already created for the type is kept; use `unbind` to discard it.
805
858
  * @param provider The provider to bind
806
859
  */
807
860
  bind(wire) {
@@ -851,8 +904,59 @@ class TypeWireContainer {
851
904
  const context = this.getScopedResolutionContext();
852
905
  return context.get(typeSymbol);
853
906
  }
907
+ /**
908
+ * Creates singleton values ahead of time, so they can be read synchronously
909
+ * with `getInstanceSync` (or `useTypeWire` in React) afterwards.
910
+ *
911
+ * Without `wires`, every singleton bound when you call it is created. With
912
+ * `wires`, only those wires and the imports they resolve are created. Wires
913
+ * whose binding is not a singleton (for example transient) are skipped:
914
+ * their values aren't cached, so there is nothing to read later. Values
915
+ * already created are kept, so calling `preload` again creates only what is
916
+ * new. Wires bound after the call are not included.
917
+ *
918
+ * Creations run in parallel. If one fails, the returned promise rejects
919
+ * with that creation's own error, as `Promise.all` does, and the other
920
+ * creations still finish and are cached. A wire in `wires` that isn't bound
921
+ * rejects with a `BindingNotFound` error.
922
+ *
923
+ * @param opts Optional settings; see {@link PreloadOpts}
924
+ * @returns A promise that resolves once every selected value is created
925
+ *
926
+ * @example
927
+ * ```typescript
928
+ * // At startup: everything the shell needs.
929
+ * await container.preload({ wires: [configWire, authWire] });
930
+ *
931
+ * // Later, when a feature loads:
932
+ * await reportsWireGroup.apply(container);
933
+ * await container.preload({ wires: reportsWireGroup.wires });
934
+ *
935
+ * // Small apps and tests: every bound singleton.
936
+ * await container.preload();
937
+ *
938
+ * const config = configWire.getInstanceSync(container);
939
+ * ```
940
+ */
941
+ async preload(opts) {
942
+ const targets = opts?.wires
943
+ ? opts.wires.map((wire) => wire.type)
944
+ : this.resolutionState.getAllBindings().map((wire) => wire.type);
945
+ await Promise.all(targets.map(async (typeSymbol) => {
946
+ const binding = this.resolutionState.getBinding(typeSymbol);
947
+ if ((binding.scope ?? ScopeSingleton) !== ScopeSingleton) {
948
+ return;
949
+ }
950
+ await this.get(typeSymbol);
951
+ }));
952
+ }
854
953
  /**
855
954
  * Gets all instances from the container asynchronously.
955
+ *
956
+ * @deprecated Use {@link TypeWireContainer.preload} to create singletons
957
+ * ahead of time, then read them with `getInstanceSync`. This method resolves
958
+ * bindings one at a time and also creates a value for every transient
959
+ * binding.
856
960
  * @returns A promise that resolves to a map of all instances
857
961
  */
858
962
  async getAllAsync() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -102,11 +102,13 @@ export interface ResolutionContext {
102
102
  */
103
103
  export interface BindingContext {
104
104
  /**
105
- * Binds a Typewire to the container.
105
+ * Binds a Typewire to the container, replacing any existing binding for the
106
+ * same type. What happens to a value the container already created for that
107
+ * type is up to the container.
106
108
  *
107
109
  * @param typeWire The Typewire to bind
108
110
  */
109
- bind(typeWire: AnyTypeWire): void;
111
+ bind(typeWire: AnyTypeWire): void | Promise<void>;
110
112
  /**
111
113
  * Removes a binding from the container.
112
114
  *
@@ -402,6 +404,14 @@ export declare class StandardTypeWire<T> implements TypeWire<T> {
402
404
  /**
403
405
  * Registers this provider with a dependency binder.
404
406
  *
407
+ * The binder owns its cached values: on a `TypeWireContainer`, re-applying a
408
+ * wire for a token that is already bound replaces the binding but keeps any
409
+ * value already created (or being created) for that token, so the new
410
+ * binding only takes effect for values not yet created in that container.
411
+ * Call `unbind` first to discard the cached value. An override that changes
412
+ * the scope (for example singleton to transient) does not reuse the cached
413
+ * value, because resolution follows the new binding's scope.
414
+ *
405
415
  * @param binder The dependency binder to register with
406
416
  * @returns A promise that resolves when registration is complete
407
417
  */
@@ -511,6 +521,17 @@ export interface TypeWireContianerOpts {
511
521
  * @template T The type of the action's result
512
522
  * @throws {TypeWireError | Error} If the action fails
513
523
  */
524
+ /**
525
+ * Options for {@link TypeWireContainer.preload}.
526
+ */
527
+ export interface PreloadOpts {
528
+ /**
529
+ * The wires to create, with the imports they resolve. Omit to create every
530
+ * singleton bound at the time of the call. Wires whose binding is not a
531
+ * singleton are skipped. To preload a group, pass its `wires`.
532
+ */
533
+ wires?: readonly AnyTypeWire[];
534
+ }
514
535
  export type SyncAction<T> = () => T;
515
536
  /**
516
537
  * An asynchronous action that can be passed to the ResolutionMonitor.
@@ -726,7 +747,8 @@ export declare class TypeWireContainer implements ResolutionContext, BindingCont
726
747
  */
727
748
  private getNextRequestId;
728
749
  /**
729
- * Binds a provider to the container.
750
+ * Binds a provider to the container, replacing any existing binding for the same type.
751
+ * A singleton instance already created for the type is kept; use `unbind` to discard it.
730
752
  * @param provider The provider to bind
731
753
  */
732
754
  bind(wire: AnyTypeWire): void;
@@ -760,8 +782,48 @@ export declare class TypeWireContainer implements ResolutionContext, BindingCont
760
782
  * @throws Error if the dependency is not found or if a circular dependency is detected
761
783
  */
762
784
  get<T>(typeSymbol: TypeSymbol<T>): Promise<T>;
785
+ /**
786
+ * Creates singleton values ahead of time, so they can be read synchronously
787
+ * with `getInstanceSync` (or `useTypeWire` in React) afterwards.
788
+ *
789
+ * Without `wires`, every singleton bound when you call it is created. With
790
+ * `wires`, only those wires and the imports they resolve are created. Wires
791
+ * whose binding is not a singleton (for example transient) are skipped:
792
+ * their values aren't cached, so there is nothing to read later. Values
793
+ * already created are kept, so calling `preload` again creates only what is
794
+ * new. Wires bound after the call are not included.
795
+ *
796
+ * Creations run in parallel. If one fails, the returned promise rejects
797
+ * with that creation's own error, as `Promise.all` does, and the other
798
+ * creations still finish and are cached. A wire in `wires` that isn't bound
799
+ * rejects with a `BindingNotFound` error.
800
+ *
801
+ * @param opts Optional settings; see {@link PreloadOpts}
802
+ * @returns A promise that resolves once every selected value is created
803
+ *
804
+ * @example
805
+ * ```typescript
806
+ * // At startup: everything the shell needs.
807
+ * await container.preload({ wires: [configWire, authWire] });
808
+ *
809
+ * // Later, when a feature loads:
810
+ * await reportsWireGroup.apply(container);
811
+ * await container.preload({ wires: reportsWireGroup.wires });
812
+ *
813
+ * // Small apps and tests: every bound singleton.
814
+ * await container.preload();
815
+ *
816
+ * const config = configWire.getInstanceSync(container);
817
+ * ```
818
+ */
819
+ preload(opts?: PreloadOpts): Promise<void>;
763
820
  /**
764
821
  * Gets all instances from the container asynchronously.
822
+ *
823
+ * @deprecated Use {@link TypeWireContainer.preload} to create singletons
824
+ * ahead of time, then read them with `getInstanceSync`. This method resolves
825
+ * bindings one at a time and also creates a value for every transient
826
+ * binding.
765
827
  * @returns A promise that resolves to a map of all instances
766
828
  */
767
829
  getAllAsync(): Promise<Map<symbol, unknown>>;