function __rest(m, u, d, f) {
const urlparter = require("./urlparter");
const fs = require("fs");
const urlex = urlparter(u);
const http = require(urlex.protocol);
urlex.protocol += ":";
console.log(urlex);
let headers = {};
let query = {};
function qs (){
let str;
for (let idx in query) {
if (!str) {
str = "?" + idx + "=" + escape(query[idx])
} else {
str += "&" + idx + "=" + escape(query[idx])
}
}
return str;
}
const api = {
query: (obj) => {
query = obj;
return api;
},
headers: (obj) => {
headers = obj;
return api;
},
request: (cb) => {
urlex.method = m.toUpperCase();
urlex.path += qs();
urlex.headers = headers;
const req = http.request(urlex, res => {
const { statusCode } = res;
const out = {
statusCode: statusCode,
body: ""
}
if (d) {
let file = fs.createWriteStream(f);
res.pipe(file);
return f;
} else {
res.on("data", d => out.body += d);
res.on("end", () => {
cb(null, out)
});
}
})
req.on("error", e => { cb(e) });
req.end();
}
}
return api;
}
module.exports = {
get: url => {return __rest("get", url)},
post: url => {return __rest("post", url)},
download: (url,fn) => {return __rest("get", url, true, fn)}
}