UNPKG

@elsikora/cladi

Version:

Zero-dependency TypeScript DI toolkit with typed tokens and scoped lifecycles.

75 lines 3.16 kB
import type { IContainerSnapshot, IDependencyGraph, IDIScopeCreateOptions, IResolutionExplanation } from '../../../domain/interface/index'; import type { IDIContainer, Provider, Token } from '../../../domain/type/index'; import type { IInternalContainerOptions } from './interface/internal-container-options.interface'; /** * Advanced DI container with scoped and async resolution support. */ export declare class DIContainer implements IDIContainer { id: string; get isLocked(): boolean; private readonly ASYNC_RESOLUTION_DRAIN_TIMEOUT_MS?; private readonly CACHE_COORDINATOR; private readonly CAPTIVE_DEPENDENCY_POLICY; private readonly CHILD_SCOPES; private readonly DEPENDENCY_GRAPH_COORDINATOR; private readonly DISPOSAL_COORDINATOR; private readonly DISPOSAL_MANAGER; private disposePromise?; private readonly DISPOSER_COORDINATOR; private readonly DISPOSERS; private readonly DISPOSERS_BY_TOKEN; private readonly DUPLICATE_PROVIDER_POLICY; private isDisposed; private isDisposing; private isScopeLocked; private readonly LOGGER; private readonly LOOKUP_COORDINATOR; private readonly PARENT?; private readonly PENDING_PROVIDER_CLEANUPS; private readonly PROVIDERS; private readonly REGISTRATION_COORDINATOR; private readonly RESOLUTION_COORDINATOR; private readonly RESOLUTION_ENGINE; private readonly RESOLVE_INTERCEPTOR_DISPATCHER; private readonly RESOLVE_INTERCEPTORS; private readonly ROOT; private readonly ROOT_SCOPE_COUNTER; private readonly ROOT_SINGLETON_CACHE; private readonly SCOPED_CACHE; constructor(options?: IInternalContainerOptions); bootstrap(tokens?: ReadonlyArray<Token<unknown>>): Promise<void>; createScope(name?: string, options?: IDIScopeCreateOptions): DIContainer; dispose(): Promise<void>; explain<T>(token: Token<T>): IResolutionExplanation; exportGraph(): IDependencyGraph; getRegisteredTokens(): Array<Token<unknown>>; has(token: Token<unknown>): boolean; lock(): void; register(providerOrProviders: Array<Provider> | Provider): void; resolve<T>(token: Token<T>): T; resolveAll<T>(token: Token<T>): Array<T>; resolveAllAsync<T>(token: Token<T>): Promise<Array<T>>; resolveAsync<T>(token: Token<T>): Promise<T>; resolveOptional<T>(token: Token<T>): T | undefined; resolveOptionalAsync<T>(token: Token<T>): Promise<T | undefined>; snapshot(): IContainerSnapshot; unregister<T>(token: Token<T>): Promise<boolean>; validate(): void; private assertToken; private collectCacheKeys; private describeToken; private disposeInternal; private ensureActive; private ensureNotDisposing; private ensureNotLocked; private getProviderRegistrationCount; private getSingletonProviderTokens; private hasAsyncCleanupHooks; private hasTrackedDisposersForTokenRecursively; private isProviderCleanupPending; private isRegistrationCurrent; private logProviderCleanupFailure; private queueProviderCleanup; private waitForProviderCleanup; } //# sourceMappingURL=container.class.d.ts.map