UNPKG

@hotwired/turbo

Version:

The speed of a single-page web application without having to write any JavaScript

68 lines (67 loc) 2.57 kB
import { FetchResponse } from "./fetch_response"; import { FrameElement } from "../elements/frame_element"; export declare type TurboBeforeFetchRequestEvent = CustomEvent<{ fetchOptions: RequestInit; url: URL; resume: (value: any) => void; }>; export declare type TurboBeforeFetchResponseEvent = CustomEvent<{ fetchResponse: FetchResponse; }>; export declare type TurboFetchRequestErrorEvent = CustomEvent<{ request: FetchRequest; error: Error; }>; export interface FetchRequestDelegate { referrer?: URL; 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 target?: FrameElement | HTMLFormElement | null; readonly abortController: AbortController; private resolveRequestPromise; constructor(delegate: FetchRequestDelegate, method: FetchMethod, location: URL, body?: FetchRequestBody, target?: FrameElement | HTMLFormElement | null); get location(): URL; get params(): URLSearchParams; get entries(): [string, FormDataEntryValue][]; cancel(): void; perform(): Promise<FetchResponse | void>; receive(response: Response): Promise<FetchResponse>; get fetchOptions(): RequestInit; get defaultHeaders(): { Accept: string; }; get isIdempotent(): boolean; get abortSignal(): AbortSignal; acceptResponseType(mimeType: string): void; private allowRequestToBeIntercepted; private willDelegateErrorHandling; }