forked from twilio-labs/serverless-toolkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcli.js
38 lines (32 loc) · 1.13 KB
/
cli.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
const meow = require('meow');
const boxen = require('boxen');
const debug = require('debug')('twilio-run:cli');
const { createServer } = require('./server');
const { startInspector } = require('./utils/inspector');
const meowConfig = require('./cli/meow-config');
const { getConfigFromCli } = require('./cli/config');
const { getRouteInfo } = require('./cli/route-info');
const cli = meow(meowConfig.usage, meowConfig.config);
async function run() {
const config = await getConfigFromCli(cli);
debug('Determined configuration: %o', config);
process.title = config.appName;
process.env = { ...process.env, ...config.env }
if (config.inspect) {
debug(
'Starting inspector mode with following configuration: %o',
config.inspect
);
startInspector(config.inspect.hostPort, config.inspect.break);
}
const app = createServer(config.port, config);
debug('Start server on port %d', config.port);
return new Promise(resolve => {
app.listen(config.port, () => {
const info = getRouteInfo(config);
console.log(boxen(info, { padding: 1 }));
resolve(app);
});
});
}
module.exports = { run };