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)} }