got-send-url
Version:
got-send-url is a GOT based HTTP request library for Node.js
73 lines • 2.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const got_1 = require("got");
const https_proxy_agent_1 = require("https-proxy-agent");
const sendURL = async ({ url, method, body, headers, retryLimit, retryDelay, responseType = "json", useProxyYn = false, useThrowYn = true, getAllResponseYn = false, }) => {
try {
const notUseTLS = url.startsWith("https") && useProxyYn && process.env.NODE_ENV === "dev";
const options = {
responseType,
method,
};
if (retryLimit) {
options.retry = {
limit: retryLimit,
methods: ["GET", "POST", "PUT", "HEAD", "DELETE", "OPTIONS", "TRACE"],
};
retryDelay
? (options.retry.calculateDelay = ({ attemptCount }) => {
if (attemptCount > retryLimit) {
return 0;
}
return retryDelay;
})
: null;
}
if (headers) {
options.headers = headers;
}
if (useProxyYn) {
options.agent = {
http: new https_proxy_agent_1.HttpsProxyAgent("http://127.0.0.1:8888"),
https: new https_proxy_agent_1.HttpsProxyAgent("http://127.0.0.1:8888"),
};
}
if (notUseTLS) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
}
let response;
if (headers && headers["Content-Type"]?.includes("urlencoded")) {
options.responseType = "text";
if (method === "GET") {
options.searchParams = body;
response = await (0, got_1.default)(url, options);
}
else {
options.body = body;
response = await (0, got_1.default)(url, options);
}
}
else {
if (method === "GET") {
options.searchParams = body;
response = await (0, got_1.default)(url, options);
}
else {
options.json = body;
response = await (0, got_1.default)(url, options);
}
}
if (notUseTLS) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "1";
}
return getAllResponseYn ? response : response.body;
}
catch (error) {
if (useThrowYn) {
throw error;
}
return error;
}
};
exports.default = sendURL;
//# sourceMappingURL=index.js.map