UNPKG

mincu-debug-tools

Version:

[Mincu - 南大家园 WEB JS API](https://github.com/ncuhome/mincu)

82 lines (64 loc) 2.22 kB
'use strict'; 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;