@elsikora/cladi
Version:
Zero-dependency TypeScript DI toolkit with typed tokens and scoped lifecycles.
38 lines • 2.42 kB
TypeScript
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