Skip to content
Buy me a coffee

ServiceProvider

Defined in: src/service-provider.ts:54

Resolves services registered in a ServiceCollection. The root provider owns singletons; createScope returns a scope that owns its scoped services. Modeled on .NET’s IServiceProvider.

Supports await using: await using scope = provider.createScope();.

[asyncDispose](): Promise<void>

Defined in: src/service-provider.ts:168

Promise<void>


createScope(): ServiceProvider

Defined in: src/service-provider.ts:135

Creates a scope: scoped services resolve once per scope. Dispose it when done (or use await using).

ServiceProvider


dispose(): Promise<void>

Defined in: src/service-provider.ts:147

Disposes every instance this provider (or scope) created, in reverse creation order: onDestroy(), else [Symbol.asyncDispose](), else [Symbol.dispose](). Disposing the root disposes singletons; disposing a scope disposes its scoped and transient instances. Every instance is disposed even if some throw; the errors are rethrown afterwards (an AggregateError if more than one). Later calls wait for the first one and do not rethrow.

Promise<void>


getKeyedService<T>(token, key): Promise<T | undefined>

Defined in: src/service-provider.ts:112

Resolves the keyed registration of token for key, or undefined.

T

Token<T>

ServiceKey

Promise<T | undefined>


getRequiredKeyedService<T>(token, key): Promise<T>

Defined in: src/service-provider.ts:120

Resolves the keyed registration of token for key, throwing ServiceNotFoundError if there is none.

T

Token<T>

ServiceKey

Promise<T>


getRequiredService<T>(token): Promise<T>

Defined in: src/service-provider.ts:96

Resolves token, throwing ServiceNotFoundError if it is not registered.

T

Token<T>

Promise<T>


getService<T>(token): Promise<T | undefined>

Defined in: src/service-provider.ts:88

Resolves token, or returns undefined if it is not registered. With several registrations, the last one wins.

T

Token<T>

Promise<T | undefined>


getServices<T>(token): Promise<T[]>

Defined in: src/service-provider.ts:103

Resolves every registration of token, in registration order. Empty if none.

T

Token<T>

Promise<T[]>


isService<T>(token, key?): boolean

Defined in: src/service-provider.ts:129

True if token (or token with key) is registered. False once disposed.

T

Token<T>

ServiceKey

boolean