UNPKG

febs

Version:

febs is a useful utilities set

101 lines (89 loc) 2.33 kB
// Type definitions for febs-decorator /// <reference types="node" /> export interface Body { arrayBuffer(): Promise<ArrayBuffer>; blob(): Promise<any>; json(): Promise<any>; text(): Promise<string>; body?: any; } export interface Headers extends Iterable<[string, string]> { forEach(callback: (value: string, name: string) => void): void; append(name: string, value: string): void; delete(name: string): void; get(name: string): string | null; has(name: string): boolean; set(name: string, value: string): void; // Iterable methods entries(): IterableIterator<[string, string]>; keys(): IterableIterator<string>; values(): IterableIterator<[string]>; [Symbol.iterator](): Iterator<[string, string]>; } export interface Request extends Body { url: string; headers?: Headers; method?: string; referrer?: string; timeout?: number; mode?: RequestMode, credentials?: RequestCredentials, } export interface RequestInit { body?: any; headers?: HeadersInit; method?: string; referrer?: string; timeout?: number; mode?: RequestMode, credentials?: RequestCredentials, } export namespace Response { function error(): Response; function redirect(url: string, status: number): Response; } export interface Response extends Body { headers: Headers; ok: boolean; status: number; statusText: string; type: ResponseType; url: string; } export type HeadersInit = Headers | string[][] | { [key: string]: string }; export type RequestInfo = string | Request; export type RequestMode = "cors" | "no-cors" | "same-origin"; export type RequestCredentials = "omit" | "include" | "same-origin"; export type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect"; /** * @example * fetch(...).then(...).catch(e=>{ * if (e instanceof febs.exception) { * // network error. * if (e.code === 'NetworkFailed') { * } * // network timeout. * if (e.code === 'NetworkTimeout') { * } * } * throw e; * }); * * @desc * * exception: * - Network error: * febs.exception.code = 'NetworkFailed' * - Network timeout: * febs.exception.code = 'NetworkTimeout' */ export type Fetch = ( url: RequestInfo, init?: RequestInit )=>Promise<Response>;