1 |
|
2 | const koaRouter = require('koa-router');
|
3 | const koaBody = require('koa-body');
|
4 | const controller = {
|
5 | ws: require('./controller/ws'),
|
6 | site: require('./controller/site'),
|
7 | devtools: require('./controller/devtools'),
|
8 | };
|
9 | const middleware = {
|
10 | inspect: require('./middleware/inspect'),
|
11 | inspectWebsocket: require('./middleware/inspectWebsocket'),
|
12 | proxy: require('./middleware/proxy'),
|
13 | };
|
14 |
|
15 | module.exports = app => {
|
16 | const router = koaRouter();
|
17 | const routes = router.routes();
|
18 |
|
19 | router.all(/^\w+:\/\/.*/, async (ctx, next) => {
|
20 |
|
21 | await next();
|
22 | });
|
23 |
|
24 |
|
25 |
|
26 | const httpURL = /^https?:\/\/.*/i;
|
27 | router.all(httpURL, middleware.inspect);
|
28 | router.all(httpURL, middleware.proxy);
|
29 |
|
30 | const wsURL = /^wss?:\/\/.*/i;
|
31 | router.all(wsURL, middleware.inspectWebsocket);
|
32 | router.all(wsURL, middleware.proxy);
|
33 |
|
34 |
|
35 |
|
36 | router.get('/feproxy.crt', controller.site.crt);
|
37 | router.get('/log', controller.site.log);
|
38 | router.get('/getConfig', controller.site.getConfig);
|
39 | router.post('/setConfig', koaBody(), controller.site.setConfig);
|
40 |
|
41 |
|
42 | router.get('/ws', controller.ws);
|
43 |
|
44 | router.get(/\/devtools\/(.+)/, controller.devtools);
|
45 |
|
46 |
|
47 | app.use(routes);
|
48 | app.ws.use(routes);
|
49 | };
|