mincu-debug-tools
Version:
[Mincu - 南大家园 WEB JS API](https://github.com/ncuhome/mincu)
82 lines (64 loc) • 2.22 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var http = require('http');
var path = require('path');
var serveHandler = require('serve-handler');
var got = require('got');
var toughCookie = require('tough-cookie');
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
var path__default = /*#__PURE__*/_interopDefault(path);
var serveHandler__default = /*#__PURE__*/_interopDefault(serveHandler);
var got__default = /*#__PURE__*/_interopDefault(got);
const makeApi = cb => {
return (req, res) => cb(req, res);
};
const fetch = makeApi(async (req, res) => {
if (!req.url) return; // reverse proxy
const params = new URLSearchParams(req.url.split('?')[1]);
const target = params.get('target');
if (target) {
const cookieJar = new toughCookie.CookieJar();
try {
const response = await got__default["default"](decodeURIComponent(target), {
timeout: 10000,
cookieJar
});
res.end(response.body);
return;
} catch (e) {
return res.end(e.message);
}
} else {
res.end('No target');
}
});
const PUBLIC_PATH = path__default["default"].resolve(__dirname, __dirname.includes('dist') ? '../' : '', '../output');
const DEV_TOOL_PORT = 23333;
const cors = (req, res) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Request-Method', '*');
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
res.setHeader('Access-Control-Allow-Headers', '*');
if (req.method === 'OPTIONS') {
res.writeHead(200);
res.end();
return;
}
}; // Exported for mincu-debug
const startDevTool = () => {
http.createServer(async (req, res) => {
var _req$url;
cors(req, res);
if ((_req$url = req.url) !== null && _req$url !== void 0 && _req$url.includes('/api/fetch')) {
return fetch(req, res);
} else {
return serveHandler__default["default"](req, res, {
public: PUBLIC_PATH
});
}
}).listen(DEV_TOOL_PORT, () => {
console.log('\r' + `DebugTools listening on http://localhost:${DEV_TOOL_PORT}`);
});
};
exports.DEV_TOOL_PORT = DEV_TOOL_PORT;
exports.startDevTool = startDevTool;