Skip to content

provideFactory · Core API

function provideFactory<T, TDeps>(token, options): FactoryProvider<T, TDeps>;

Creates a provider that lazily builds a value.

Dependencies declared in deps become the object passed to useFactory. The factory return type must match the token type.

Type Parameter Default type

T

‐

TDeps extends DepsMap

Record<never, never>

Parameter Type Description

token

Token<T>

Token provided by the factory result.

options

{ deps?: TDeps; scope?: Scope; useFactory: Factory<T, TDeps>; onDispose?: DisposeHook<T>; }

Factory dependencies, lifetime, implementation, and cleanup.

options.deps?

TDeps

Named dependencies resolved before calling useFactory.

options.scope?

Scope

Provider lifetime. Defaults to Scopes.Singleton.

options.useFactory

Factory<T, TDeps>

Creates the provided value from the resolved dependency map.

options.onDispose?

DisposeHook<T>

Releases a cached instance when its owning container is disposed.

FactoryProvider<T, TDeps>

A lazy factory provider accepted by a container.

provideFactory(HTTP, {
deps: { config: CONFIG },
useFactory: ({ config }) => new HttpClient(config.apiUrl),
});

InvalidProviderError When a transient provider declares an onDispose hook that could never run.