UNPKG

dnsimple

Version:

A Node.JS client for the DNSimple API.

43 lines (42 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const https = require("https"); const url_1 = require("url"); const main_1 = require("../main"); const httpsFetcher = (params) => { return new Promise((resolve, reject) => { const urlObj = new url_1.URL(params.url); const options = { method: params.method, headers: params.headers, timeout: params.timeout, }; const req = https.request(urlObj, options, (res) => { const chunks = []; res .on("data", (chunk) => chunks.push(chunk)) .on("end", () => { const body = Buffer.concat(chunks).toString("utf-8"); resolve({ status: res.statusCode || 500, // Fallback to 500 if statusCode is undefined body: body, }); }); }); req.on("error", (err) => { if (err.code === "ECONNRESET") reject(new main_1.TimeoutError()); else reject(err); }); const timeoutId = setTimeout(() => { req.destroy(); reject(new main_1.TimeoutError()); }, params.timeout); req.on("close", () => clearTimeout(timeoutId)); if (params.body) req.write(params.body); req.end(); }); }; exports.default = httpsFetcher;