UNPKG

next-loaders

Version:
29 lines (28 loc) 925 B
export interface LoaderServerSuccess<T> { success: true; data: T; message?: string; } export interface LoaderServerFailure { success: false; message: string; detail?: string; data?: null; } export type LoaderServerResponse<T> = LoaderServerSuccess<T> | LoaderServerFailure; export interface LoaderServerAction<T, P = any> { (...args: P extends any[] ? P : P[]): Promise<LoaderServerResponse<T>>; } export interface ActionCallbacks<T> { onSuccess?(result: LoaderServerResponse<T>): void; onError?(e: unknown): void; onFinally?(): void; } export interface ActionInferred<T, P = any> { (): Promise<void>; (...args: P extends never ? [] : [...(P extends any[] ? P : [P]), ActionCallbacks<T>?]): Promise<void>; } export interface LoaderInferred<P = any> { (): Promise<void>; (...args: P extends never ? [] : [...(P extends any[] ? P : [P]), boolean?]): Promise<void>; }