UNPKG

iso-web

Version:

Isomorphic web apis utilities for fetch, event target, signals, crypto and doh.

271 lines 11.5 kB
/** * @typedef {NetworkError | TimeoutError | AbortError | HttpError | RetryError} Errors */ /** * Check if a value is a RequestError * * @param {unknown} value * @returns {value is RequestError} */ export function isRequestError(value: unknown): value is RequestError; /** * Request timeout * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function request(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; export namespace request { /** * Request GET * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function get(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; /** * Request POST * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function post(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; /** * Request PUT * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function put(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; /** * Request DELETE * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ function _delete(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; export { _delete as delete }; /** * Request PATCH * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function patch(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; /** * Request HEAD * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function head(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; /** * Request OPTIONS * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function options(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; /** * Request TRACE * * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").RequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<Response, Errors>>} */ export function trace(resource: import("./types.js").RequestInput, options?: import("./types.js").RequestOptions): Promise<import("./types.js").MaybeResult<Response, Errors>>; /** * Request Json GET * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function json<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; export namespace json { /** * Request Json GET * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function get<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; /** * Request Json POST * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function post<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; /** * Request Json PUT * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function put<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; /** * Request Json DELETE * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ function _delete<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; export { _delete as delete }; /** * Request Json PATCH * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function patch<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; /** * Request Json HEAD * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function head<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; /** * Request Json OPTIONS * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function options<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; /** * Request Json TRACE * * @template T * @param {import('./types.js').RequestInput} resource * @param {import("./types.js").JSONRequestOptions} options * @returns {Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>} */ export function trace<T>(resource: import("./types.js").RequestInput, options?: import("./types.js").JSONRequestOptions): Promise<import("./types.js").MaybeResult<T, Errors | JsonError>>; } } export class RequestError extends Error { /** * Check if a value is a RequestError * * @param {unknown} value * @returns {value is RequestError} */ static is(value: unknown): value is RequestError; /** * * @param {string} message * @param {ErrorOptions} [options] */ constructor(message: string, options?: ErrorOptions); /** @type {unknown} */ cause: unknown; /** @type {boolean} */ [symbol]: boolean; } export class JsonError extends RequestError { /** * Check if a value is a JsonError * * @param {unknown} value * @returns {value is JsonError} */ static is(value: unknown): value is JsonError; /** * * @param {{ cause: import('type-fest').JsonValue }} options */ constructor(options: { cause: import("type-fest").JsonValue; }); /** @type {import('type-fest').JsonValue} */ cause: import("type-fest").JsonValue; } export class NetworkError extends RequestError { } export class TimeoutError extends RequestError { /** * * @param {number} timeout * @param {ErrorOptions} [options] */ constructor(timeout: number, options?: ErrorOptions); } export class AbortError extends RequestError { /** * Check if a value is a AbortError * * @param {unknown} value * @returns {value is AbortError} */ static is(value: unknown): value is AbortError; /** * * @param {AbortSignal} signal * @param {ErrorOptions} [options] */ constructor(signal: AbortSignal, options?: ErrorOptions); /** @type {AbortSignal} */ signal: AbortSignal; } export class RetryError extends RequestError { /** * * @param {number} attempts * @param {ErrorOptions} [options] */ constructor(attempts: number, options?: ErrorOptions); } export class HttpError extends RequestError { /** * Check if a value is a HttpError * * @param {unknown} value * @returns {value is HttpError} */ static is(value: unknown): value is HttpError; /** * * @param {ErrorOptions & {response: Response, request: Request, options: import('./types.js').RequestOptions}} options */ constructor(options: ErrorOptions & { response: Response; request: Request; options: import("./types.js").RequestOptions; }); /** @type {number} */ code: number; /** @type {Response} */ response: Response; /** @type {Request} */ request: Request; /** @type {import('./types.js').RequestOptions} */ options: import("./types.js").RequestOptions; } export type Errors = NetworkError | TimeoutError | AbortError | HttpError | RetryError; declare const symbol: unique symbol; export {}; //# sourceMappingURL=http.d.ts.map