hrc-debug
Version:
print debug info at server from client
58 lines (43 loc) • 1.07 kB
text/typescript
import Koa from 'koa';
import Router from 'koa-router';
import { koaBody } from 'koa-body';
import Cors from 'koa-cors';
import { LogQueueItem } from './interface.common';
const server = (route = '/proxy/console', beforeOutput: Function) => {
const app = new Koa();
app.use(Cors());
app.use(koaBody());
const router = new Router();
router.post(route, (ctx) => {
const body = ctx.request.body;
const {
console: _console = [],
prefix = false,
} = body;
_console.forEach((item: LogQueueItem) => {
if (prefix) {
item.args.shift();
}
if (beforeOutput) {
beforeOutput(item);
}
console[item.method](...item.args);
});
ctx.body = '';
});
app.use(router.routes());
return app;
};
export default (config: {
port: number;
route?: string;
beforeOutput?: Function;
} = {
port: 3000,
route: '/proxy/console',
beforeOutput: () => {},
}) => {
const { port = 3000 } = config;
const app = server(config.route, config.beforeOutput!);
app.listen(port);
};