1 |
|
2 | 'use strict'
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | const path = require('path')
|
13 |
|
14 | const chalk = require('chalk')
|
15 |
|
16 | const readCors = require('../lib/cors/read.js')
|
17 | const serve = require('../lib/serve.js')
|
18 | const displayRoutes = require('../lib/routes/display.js')
|
19 | const scope = require('../lib/scope.js')
|
20 |
|
21 | module.exports = async function (
|
22 | input /* : Array<string> */,
|
23 | flags /* : CLIFlags */,
|
24 | logger /* : typeof console */,
|
25 | options /* : CLIOptions */
|
26 | ) /* : Promise<void> */ {
|
27 | const cfg = await scope.read(flags.cwd)
|
28 | const cwd = path.resolve(flags.cwd)
|
29 | const cors = await readCors(cwd)
|
30 | const server = await serve.startServer(logger, {
|
31 | cors,
|
32 | cwd,
|
33 | env: flags.env,
|
34 | port: flags.port || 3000,
|
35 | options
|
36 | },
|
37 | cfg,
|
38 | options.blinkMobileIdentity, flags.env)
|
39 | await displayRoutes(logger, flags.cwd)
|
40 | if (cfg.awsProfile) {
|
41 | logger.log(`You are using the following AWS profile: ${cfg.awsProfile}`)
|
42 | } else {
|
43 | logger.log('No AWS profile has been configured in the .blinkmrc file. A generic role has been assumed.')
|
44 | }
|
45 | logger.log(`
|
46 | HTTP service for local development is available from:
|
47 | http://localhost:${server.info.port}
|
48 |
|
49 | ${chalk.yellow('Hit CTRL-C to stop the service')}
|
50 | `)
|
51 | }
|