-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathserve.js
39 lines (30 loc) · 927 Bytes
/
serve.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const path = require('path');
const http = require('http');
const EC = require('eight-colors');
const KSR = require('koa-static-resolver');
const Koa = require('koa');
const serve = (port, mockName) => {
const mockDir = path.resolve(__dirname, 'mock', mockName);
console.log('serve mock dir', mockName);
const app = new Koa();
app.use(KSR({
dirs: [mockDir],
headers: {
'Access-Control-Allow-Origin': '*'
},
gzip: false,
// max-age=<seconds>
maxAge: 1
}));
const server = http.createServer(app.callback());
return new Promise((resolve) => {
server.listen(port, function() {
EC.logCyan(`${new Date().toLocaleString()} server listening on ${port}`);
resolve({
server,
serverUrl: `http://localhost:${port}`
});
});
});
};
module.exports = serve;