UNPKG

globalping-ts

Version:

Typescript library for the Globalping API

45 lines (44 loc) 1.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.request = request; exports.sleep = sleep; exports.parseETag = parseETag; const axios_1 = __importDefault(require("axios")); async function request(method, url, headers, data = false, debug = false, retry = true) { if (debug) { console.log(`utils :: request() :: ${method} ${url}, ${retry}`); } let requestOptions = { method, url, headers, validateStatus: () => true, ...(data && { data }), maxRedirects: 0, }; if (debug) { console.log(`utils :: request() :: requestOptions${JSON.stringify(requestOptions, null, 4)}`); } return await axios_1.default.request(requestOptions).catch(async (error) => { if (debug) { console.log(`utils :: request() :: ${method} ${url}, ${retry} - ${error.message}`); } if (retry) { await sleep(1); return await request(method, url, headers, data, debug, false); } throw new Error(error); }); } async function sleep(seconds) { return new Promise((resolve) => setTimeout(resolve, seconds * 1000)); } function parseETag(etag) { if (!etag) return ''; // Remove quotes if present return etag.replace(/^W\//, '').replace(/^"(.*)"$/, '$1'); }