UNPKG

1.26 kBJavaScriptView Raw
1/* @flow */
2'use strict'
3
4/* ::
5import type {
6 CLIFlags,
7 CLIOptions
8} from '../types.js'
9*/
10
11const os = require('os')
12
13const displayCors = require('../lib/cors/display.js')
14const displayRoutes = require('../lib/routes/display.js')
15const scope = require('../lib/scope.js')
16const variables = require('../lib/variables.js')
17const network = require('../lib/network.js')
18
19module.exports = function(
20 input /* : Array<string> */,
21 flags /* : CLIFlags */,
22 logger /* : typeof console */,
23 options /* : CLIOptions */
24) /* : Promise<void> */ {
25 const tasks = [
26 () => scope.display(logger, flags.cwd, flags.env),
27 () => displayCors(logger, flags.cwd),
28 () => displayRoutes(logger, flags.cwd),
29 () => variables.display(logger, flags.cwd, flags.env),
30 () => network.displayNetwork(logger, flags.cwd, flags.env)
31 ]
32 // Catch all errors and let all tasks run before
33 // transforming into a single error
34 const errors = []
35 return tasks
36 .reduce((prev, task) => {
37 return prev.then(() => task()).catch(error => errors.push(error))
38 }, Promise.resolve())
39 .then(() => {
40 if (errors && errors.length) {
41 return Promise.reject(
42 new Error(errors.map(error => error.message).join(os.EOL))
43 )
44 }
45 })
46}