UNPKG

@elsikora/cladi

Version:

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

38 lines 2.42 kB
import type { Token } from '../../../../domain/type/index'; export declare class ResolutionEngine { private readonly ASSERT_KEY; private readonly ENSURE_ACTIVE; private readonly ENSURE_NOT_DISPOSING; private readonly GET_SCOPE_ID; private readonly NOTIFY_ON_ERROR; private readonly NOTIFY_ON_START; private readonly NOTIFY_ON_SUCCESS; private readonly ON_ASYNC_RESOLUTION_END; private readonly ON_ASYNC_RESOLUTION_START; private readonly RESOLVE_ALL_ASYNC_INTERNAL; private readonly RESOLVE_ALL_SYNC_INTERNAL; private readonly RESOLVE_ASYNC_INTERNAL; private readonly RESOLVE_SYNC_INTERNAL; constructor(options: { assertKey: <T>(dependencyKey: Token<T>) => symbol; ensureActive: () => void; ensureNotDisposing: () => void; getScopeId: () => string; notifyOnError: (tokenSymbol: symbol, isAsync: boolean, isResolveAll: boolean, isOptional: boolean, scopeId: string, error: Error) => void; notifyOnStart: (tokenSymbol: symbol, isAsync: boolean, isResolveAll: boolean, isOptional: boolean, scopeId: string) => void; notifyOnSuccess: (tokenSymbol: symbol, isAsync: boolean, isResolveAll: boolean, isOptional: boolean, scopeId: string, result?: unknown) => void; onAsyncResolutionEnd: () => void; onAsyncResolutionStart: () => void; resolveAllAsyncInternal: (tokenSymbol: symbol, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>) => Promise<Array<unknown>>; resolveAllSyncInternal: (tokenSymbol: symbol, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>) => Array<unknown>; resolveAsyncInternal: (tokenSymbol: symbol, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>) => Promise<unknown>; resolveSyncInternal: (tokenSymbol: symbol, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>) => unknown; }); resolve<T>(dependencyKey: Token<T>): T; resolveAll<T>(dependencyKey: Token<T>): Array<T>; resolveAllAsync<T>(dependencyKey: Token<T>): Promise<Array<T>>; resolveAsync<T>(dependencyKey: Token<T>): Promise<T>; resolveOptional<T>(dependencyKey: Token<T>, hasRegistration: (dependencyKeySymbol: symbol) => boolean): T | undefined; resolveOptionalAsync<T>(dependencyKey: Token<T>, hasRegistration: (dependencyKeySymbol: symbol) => boolean): Promise<T | undefined>; } //# sourceMappingURL=resolution.class.d.ts.map