@hotwired/turbo
Version:
The speed of a single-page web application without having to write any JavaScript
49 lines (48 loc) • 1.85 kB
TypeScript
import { FetchResponse } from "./fetch_response";
export interface FetchRequestDelegate {
prepareHeadersForRequest?(headers: FetchRequestHeaders, request: FetchRequest): void;
requestStarted(request: FetchRequest): void;
requestPreventedHandlingResponse(request: FetchRequest, response: FetchResponse): void;
requestSucceededWithResponse(request: FetchRequest, response: FetchResponse): void;
requestFailedWithResponse(request: FetchRequest, response: FetchResponse): void;
requestErrored(request: FetchRequest, error: Error): void;
requestFinished(request: FetchRequest): void;
}
export declare enum FetchMethod {
get = 0,
post = 1,
put = 2,
patch = 3,
delete = 4
}
export declare function fetchMethodFromString(method: string): FetchMethod | undefined;
export declare type FetchRequestBody = FormData | URLSearchParams;
export declare type FetchRequestHeaders = {
[header: string]: string;
};
export interface FetchRequestOptions {
headers: FetchRequestHeaders;
body: FetchRequestBody;
followRedirects: boolean;
}
export declare class FetchRequest {
readonly delegate: FetchRequestDelegate;
readonly method: FetchMethod;
readonly headers: FetchRequestHeaders;
readonly url: URL;
readonly body?: FetchRequestBody;
readonly abortController: AbortController;
constructor(delegate: FetchRequestDelegate, method: FetchMethod, location: URL, body?: FetchRequestBody);
get location(): URL;
get params(): URLSearchParams;
get entries(): [string, FormDataEntryValue][];
cancel(): void;
perform(): Promise<FetchResponse>;
receive(response: Response): Promise<FetchResponse>;
get fetchOptions(): RequestInit;
get defaultHeaders(): {
Accept: string;
};
get isIdempotent(): boolean;
get abortSignal(): AbortSignal;
}