[Poly > Request] Cleanup some source

main
Oj 2 years ago
parent 1694b64247
commit 6775040a37

@ -7,21 +7,9 @@ const nodeReq = ({ method, url, headers, qs, timeout, body, stream }) => new Pro
let req;
try {
req = https.request(fullUrl, {
method,
headers,
timeout
}, async (res) => {
req = https.request(fullUrl, { method, headers, timeout }, async (res) => {
if (res.statusCode === 301 || res.statusCode === 302) { // Redirect, recall function
return resolve(await nodeReq({
url: res.headers.location,
qs: null,
method,
headers,
timeout,
body,
stream
}));
return resolve(await nodeReq({ url: res.headers.location, method, headers, timeout, body, stream }));
}
resolve(res);
@ -37,13 +25,11 @@ const nodeReq = ({ method, url, headers, qs, timeout, body, stream }) => new Pro
req.end();
});
const request = (...args) => { // Main function
// We have to use ...args because fun fact! request supports both:
const request = (...args) => {
// We have to use ...args because we have to support all of these possible args:
// request(url, callback)
// request(options, callback)
// ^ These are fine as they have the same number of arguments, however it also supports:
// request(url, options, callback)
// ...I know, right
let options, callback;
switch (args.length) {
@ -67,18 +53,17 @@ const request = (...args) => { // Main function
};
}
// log('Polyfill > Request', options.method, options.url);
console.log('[OpenAsar Request Polyfill]', options.url);
const listeners = {};
nodeReq(options).then(async (res) => { // No error handling because yes
nodeReq(options).then(async (res) => {
const isError = !res.statusCode;
if (isError) {
console.log('[OpenAsar Request Polyfill] Error:', res);
listeners['error']?.(res);
callback?.(res, null, null); // Return null for others?
callback?.(res, null, null);
return;
}
@ -107,14 +92,9 @@ const request = (...args) => { // Main function
return ret;
};
// Method functions
request.get = (url, callback) => request({ url: url, method: 'GET' }, callback);
request.post = (url, callback) => request({ url: url, method: 'POST' }, callback);
request.put = (url, callback) => request({ url: url, method: 'PUT' }, callback);
request.patch = (url, callback) => request({ url: url, method: 'PATCH' }, callback);
request.delete = (url, callback) => request({ url: url, method: 'DELETE' }, callback);
request.del = request.delete; // Random shortened func because request
request.head = (url, callback) => request({ url: url, method: 'HEAD' }, callback);
request.options = (url, callback) => request({ url: url, method: 'OPTIONS' }, callback);
for (const m of [ 'get', 'post', 'put', 'patch', 'delete', 'head', 'options' ]) {
request[m] = (url, callback) => request({ url, method: m.toUpperCase() }, callback);
}
request.del = request.delete; // Special case
module.exports = request;
Loading…
Cancel
Save