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