UNPKG

@gameye/sdk

Version:
56 lines 1.77 kB
import * as http from "http"; import * as createHttpError from "http-errors"; import * as https from "https"; import { readAll } from "../utils"; export const timeoutError = new Error("Timeout!!!"); export 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; } export async function getResponse(request) { const response = await new Promise((resolve, reject) => request. on("response", resolve). on("error", reject). on("timeout", () => reject(timeoutError))); const { statusCode, statusMessage } = response; if (!(statusCode && statusCode >= 200 && statusCode < 300)) { throw createHttpError(statusCode, statusMessage); } return response; } export async function readResponse(response) { const { headers } = response; const [contentType] = (headers["content-type"] || "").split(";"); switch (contentType) { case "application/json": { const data = await readAll(response); const result = JSON.parse(data); return result; } default: { const result = await readAll(response); return result; } } } //# sourceMappingURL=request.js.map