@amanooo/fetch
Version:
custom fetch
57 lines (56 loc) • 2.09 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.obj2urlParams = (obj = {}) => {
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(/^/, '?');
};
function commonHeaders() {
return {
'content-type': 'application/json',
};
}
exports.commonHeaders = commonHeaders;
function commonRetryOpts() {
return {
retries: 3,
delay: 3 * 1000,
timeout: 60 * 1000,
};
}
exports.commonRetryOpts = commonRetryOpts;
function cost(startTime) {
return (new Date().getTime() - startTime.getTime()) / 1000;
}
exports.cost = cost;
function delay(time) {
return new Promise(resolve => setTimeout(() => resolve(true), time));
}
exports.delay = delay;
function timeout(time) {
return new Promise((resolve, reject) => setTimeout(() => reject('timeout'), time));
}
exports.timeout = timeout;
function filter200Status(r) {
return __awaiter(this, void 0, void 0, function* () {
if (r.status !== 200) {
const text = yield 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();
});
}
exports.filter200Status = filter200Status;