jsfast
Version:
Fastjs(jsfast) is a useful, lightweight JavaScript library for any types of project.
57 lines (56 loc) • 2.23 kB
TypeScript
import type { FastjsHeaders, RequestMethod } from "./base-types";
import type { FastjsRequest } from "./fetch-types";
export type RequestReturnData = (string | {
[key: string]: any;
}) & RequestReturnProto;
export type RequestReturnProto = {
getFullReturn: () => RequestReturn;
};
export interface RequestReturn {
headers: FastjsHeaders;
response: Response;
data: RequestReturnData;
status: number;
request: FastjsRequest;
resend: () => FastjsRequest;
}
export declare namespace RequestHooks {
type BeforeSend = (request: FastjsRequest) => boolean | undefined | Promise<boolean | undefined>;
type RequestSuccess = (response: RequestReturn) => boolean | undefined | Promise<boolean | undefined>;
type RequestFailed = (error: Error | number, request: FastjsRequest) => boolean | undefined | Promise<boolean | undefined>;
}
export interface RequestHookObject {
before: RequestHooks.BeforeSend[];
init: RequestHooks.BeforeSend[];
success: RequestHooks.RequestSuccess[];
failed: RequestHooks.RequestFailed[];
runAll: boolean;
}
export interface RequestHookParam {
before?: RequestHooks.BeforeSend[] | RequestHooks.BeforeSend;
init?: RequestHooks.BeforeSend[] | RequestHooks.BeforeSend;
success?: RequestHooks.RequestSuccess[] | RequestHooks.RequestSuccess;
failed?: RequestHooks.RequestFailed[] | RequestHooks.RequestFailed;
runAll?: boolean;
}
export type RequestHook = RequestHooks.BeforeSend | RequestHooks.RequestSuccess | RequestHooks.RequestFailed;
export type RequestHookKey = "before" | "init" | "success" | "failed";
export interface FailedParams<T extends Error | number> {
error: T;
request: FastjsRequest;
intercept: boolean;
hook: RequestHookKey | null;
response: RequestReturn | null;
headers: FastjsHeaders | null;
resend: () => FastjsRequest;
}
export interface CallbackObject<T> {
func: T;
once: boolean;
method?: RequestMethod;
}
export interface RequestCallback {
success: CallbackObject<(data: RequestReturnData, response: RequestReturn) => void>[];
failed: CallbackObject<(err: FailedParams<Error | number>) => void>[];
finally: CallbackObject<(request: FastjsRequest) => void>[];
}