ComposedContext type
Home > @rimitive/core > ComposedContext
ComposedContext type
Section titled “ComposedContext type”The composed context type from a tuple of Modules.
Maps module names to their implementations and adds a dispose() method. For overridden modules, also includes the replacement modules’ dependencies.
Signature:
export type ComposedContext<TModules extends readonly Module[]> = { [M in FlattenModule<TModules[number]> as ModuleName<M>]: ModuleImpl<M>;} & AllReplacementDeps<TModules> & { dispose(): void;};References: Module, FlattenModule, ModuleName, ModuleImpl, AllReplacementDeps
Example 1
Section titled “Example 1”type SignalModule = Module<'signal', SignalImpl, SignalDeps>;type ComputedModule = Module<'computed', ComputedImpl, ComputedDeps>;
type Ctx = ComposedContext<[SignalModule, ComputedModule]>;// Ctx = { signal: SignalImpl; computed: ComputedImpl; dispose(): void }Example 2
Section titled “Example 2”With override
const OverriddenService = override(Service, { logger: ConfigurableLogger });type Ctx = ComposedContext<[typeof OverriddenService]>;// Ctx includes 'service', 'logger', AND 'config' (from ConfigurableLogger's deps)