jsfast
Version:
Fastjs(jsfast) is a useful, lightweight JavaScript library for any types of project.
31 lines (30 loc) • 1.92 kB
TypeScript
import type { FailedParams, RequestCallback, RequestReturn, RequestReturnData, RequestReturnProto } from "./def";
import type { RequestData, RequestMethod } from "./base-types";
import type { FastjsModuleBase } from "../base/def";
import type { RequestConfig } from "./config";
export interface FastjsRequestAtom {
readonly construct: "FastjsRequest";
url?: string;
data: RequestData;
config: RequestConfig;
callback: RequestCallback;
request?: Request;
response?: Response;
wait?: NodeJS.Timeout | null;
}
type FastjsRequestWrapped = (<T extends any = string | RequestReturnData>() => FastjsRequest<T>) & (<T extends any = string | RequestReturnData>(url: string) => FastjsRequest<T>) & (<T extends any = string | RequestReturnData>(data?: RequestData) => FastjsRequest<T>) & (<T extends any = string | RequestReturnData>(url: string, data?: RequestData) => FastjsRequest<T>) & (<T extends any = string | RequestReturnData>(data?: RequestData, url?: string) => FastjsRequest<T>);
export interface FastjsRequestAPI<T extends any = string | RequestReturnData> {
send: (method: RequestMethod, data?: RequestData, url?: string) => FastjsRequest;
get: FastjsRequestWrapped;
post: FastjsRequestWrapped;
put: FastjsRequestWrapped;
delete: FastjsRequestWrapped;
patch: FastjsRequestWrapped;
head: FastjsRequestWrapped;
options: FastjsRequestWrapped;
then: (callback: (data: T & RequestReturnProto, response: RequestReturn) => void, repeat?: boolean, method?: RequestMethod) => FastjsRequest<T>;
catch: (callback: (error: FailedParams<Error | number>) => void, repeat?: boolean, method?: RequestMethod) => FastjsRequest;
finally: (callback: (request: FastjsRequest) => void) => FastjsRequest;
}
export type FastjsRequest<T extends any = string | RequestReturnData> = FastjsRequestAtom & FastjsRequestAPI<T> & Omit<FastjsModuleBase, "then">;
export {};