@gameye/sdk
Version:
Node.js SDK for Gameye
61 lines • 1.97 kB
JavaScript
;
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