Skip to content

Package Entry Point

ImportPurpose
@vielzeug/wireitMain exports and types

API At a Glance

SymbolPurposeExecution modeCommon gotcha
createToken()Create a typed DI token (Symbol-backed)SyncTokens must be unique — use descriptive labels
createContainer()Create a new DI containerSyncRegister all providers before resolving
container.value()Register a static valueSyncValue is used as-is, not wrapped
container.factory()Register a lazy factory (sync or async)Sync/AsyncAsync factories make resolve() async
container.resolve()Resolve a token to its implementationAsyncThrows if token is not registered
container.createChild()Create a scoped child containerSyncChild inherits parent registrations
container.dispose()Dispose container and call cleanup hooksAsyncCall during app teardown to avoid resource leaks

createToken(description)

Creates a typed symbol token.

ts
const Service = createToken<Service>('Service');

createContainer()

Creates a new root container.

ts
const container = createContainer();

Container

container.value(token, value, opts?)

Registers a constant provider.

container.factory(token, fn, opts?)

Registers a factory provider.

ts
container.factory(Service, (logger) => new ServiceImpl(logger), {
  deps: [Logger],
  lifetime: 'singleton',
});

container.resolve(token)

Resolves a single provider.

container.resolveMany(token)

Resolves every provider registered for a token.

container.resolveOptional(token)

Resolves a token when available and returns undefined when no provider exists.

container.createChild()

Creates a child container that can inherit registrations from its parent.

container.dispose()

Disposes resolved instances and prevents further use.

container.disposed

Returns true after disposal.

Types

  • Token<T>
  • Lifetime
  • Provider<T>
  • ProviderOptions<T, Deps>
  • ValueProvider<T>
  • FactoryProvider<T, Deps>

Errors

  • CircularDependencyError
  • ProviderNotFoundError
  • MultipleProvidersError
  • ContainerDisposedError