iso-web
Version:
Isomorphic web apis utilities for fetch, event target, signals, crypto and doh.
268 lines • 11.3 kB
TypeScript
/**
* @typedef {NetworkError | TimeoutError | AbortError | HttpError} Errors
*/
/**
* Check if a value is a RequestError
*
* @param {unknown} value
* @returns {value is RequestError}
*/
export function isRequestError(value: unknown): value is RequestError;
/**
* HTTP Request
*
* @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 {
/**
*
* @param {ErrorOptions} options
*/
constructor(options?: ErrorOptions);
}
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 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;
declare const symbol: unique symbol;
export {};
//# sourceMappingURL=http.d.ts.map