UNPKG

ember-auto-import

Version:
41 lines (40 loc) 1.6 kB
export type Resolution<T = unknown, E = unknown> = { type: 'found'; filename: string; result: T; } | { type: 'not_found'; err: E; }; export type RequestAdapterCreate<Init, Res extends Resolution> = (params: Init) => { initialState: InitialRequestState; adapter: RequestAdapter<Res>; } | undefined; export interface RequestAdapter<Res extends Resolution> { readonly debugType: string; resolve(request: ModuleRequest<Res>): Promise<Res>; notFoundResponse(request: ModuleRequest<Res>): Res | (() => Promise<Res>); } export interface InitialRequestState { readonly specifier: string; readonly fromFile: string; readonly meta: Record<string, unknown> | undefined; } export declare class ModuleRequest<Res extends Resolution = Resolution> implements ModuleRequest<Res> { #private; static create<Init, Res extends Resolution>(createAdapter: RequestAdapterCreate<Init, Res>, params: Init): ModuleRequest<Res> | undefined; private constructor(); get specifier(): string; get fromFile(): string; get debugType(): string; get meta(): Record<string, unknown> | undefined; get resolvedTo(): Res | (() => Promise<Res>) | undefined; alias(newSpecifier: string): this; rehome(newFromFile: string): this; withMeta(meta: Record<string, any> | undefined): this; notFound(): this; resolveTo(res: Res | (() => Promise<Res>)): this; defaultResolve(): Promise<Res>; clone(): this; } export declare function extractResolution<Res extends Resolution = Resolution>(res: Res | (() => Promise<Res>)): Promise<Res>;