UNPKG

1.27 kBJavaScriptView Raw
1/* @flow */
2'use strict'
3
4/* ::
5import type {
6 BlinkMRCServer,
7 CLIFlags,
8 CLIOptions
9} from '../types.js'
10*/
11
12const path = require('path')
13
14const chalk = require('chalk')
15
16const readCors = require('../lib/cors/read.js')
17const serve = require('../lib/serve.js')
18const displayRoutes = require('../lib/routes/display.js')
19const scope = require('../lib/scope.js')
20
21module.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(`
46HTTP 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}