UNPKG

@amanooo/fetch

Version:
41 lines (38 loc) 1.24 kB
export const obj2urlParams = (obj: Object = {}): string => { return Object.keys(obj).length === 0 ? '' : Object.keys(obj) .filter(key => obj[key] !== undefined) .reduce((str, key) => `${str}${key}=${obj[key]}&`, '') .slice(0, -1) .replace(/^/, '?') } export function commonHeaders(): HeadersInit { return { 'content-type': 'application/json', } } export function commonRetryOpts() { return { retries: 3, delay: 3 * 1000, timeout: 60 * 1000, } } export function cost(startTime: Date) { return (new Date().getTime() - startTime.getTime()) / 1000 } export function delay(time: number) { return new Promise(resolve => setTimeout(() => resolve(true), time)) } export function timeout(time: number) { return new Promise((resolve, reject) => setTimeout(() => reject('timeout'), time)); } export async function filter200Status(r: Response) { if (r.status !== 200) { const text = await r.text() return Promise.reject(`${r.url} error status ${r.status} ${r.statusText} ${text}`) // throw new Error(`${r.url} error status ${r.status} ${r.statusText} ${text}`); } return r.json() }