UNPKG

@gameye/sdk

Version:
61 lines 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const http = require("http"); const createHttpError = require("http-errors"); const https = require("https"); const utils_1 = require("../utils"); exports.timeoutError = new Error("Timeout!!!"); function createRequestStream(method, url, headers, timeout) { const requestOptions = { method, hostname: url.hostname, port: url.port, path: url.pathname + url.search, headers, timeout, }; let request; switch (url.protocol) { case undefined: case "": case "http:": request = http.request(requestOptions); break; case "https:": request = https.request(requestOptions); break; default: throw new Error(`protocol not supported ${url.protocol}`); } return request; } exports.createRequestStream = createRequestStream; async function getResponse(request) { const response = await new Promise((resolve, reject) => request. on("response", resolve). on("error", reject). on("timeout", () => reject(exports.timeoutError))); const { statusCode, statusMessage } = response; if (!(statusCode && statusCode >= 200 && statusCode < 300)) { throw createHttpError(statusCode, statusMessage); } return response; } exports.getResponse = getResponse; async function readResponse(response) { const { headers } = response; const [contentType] = (headers["content-type"] || "").split(";"); switch (contentType) { case "application/json": { const data = await utils_1.readAll(response); const result = JSON.parse(data); return result; } default: { const result = await utils_1.readAll(response); return result; } } } exports.readResponse = readResponse; //# sourceMappingURL=request.js.map