UNPKG

2.16 kBJavaScriptView Raw
1/* @flow */
2'use strict'
3
4/* ::
5import type {
6 BlinkMRC,
7 BlinkMRCServer
8} from '../types.js'
9*/
10
11const chalk = require('chalk')
12const Table = require('cli-table2')
13const objectMerge = require('object-merge')
14
15const projectMeta = require('./utils/project-meta.js')
16const values = require('./values.js')
17
18function read (
19 cwd /* : string */
20) /* : Promise<BlinkMRCServer> */ {
21 return projectMeta.read(cwd)
22 .then((cfg) => cfg && cfg.server ? cfg.server : {})
23}
24
25function display (
26 logger /* : typeof console */,
27 cwd /* : string */,
28 env /* : ?string */
29) /* : Promise<void> */ {
30 return read(cwd)
31 .then((meta) => meta.project ? meta : Promise.reject(new Error()))
32 .catch(() => Promise.reject(new Error('Scope has not been set yet, see --help for information on how to set scope.')))
33 .then((meta) => {
34 var table = new Table()
35 table.push(
36 [{
37 content: chalk.bold('Scope'),
38 hAlign: 'center',
39 colSpan: 2
40 }],
41 [
42 chalk.grey('Project'),
43 meta.project
44 ],
45 [
46 chalk.grey('Region'),
47 meta.region
48 ],
49 [
50 chalk.grey('Timeout'),
51 meta.timeout || values.DEFAULT_TIMEOUT_SECONDS
52 ]
53 )
54 if (env) {
55 table.push([
56 chalk.grey('Environment'),
57 env
58 ])
59 }
60 logger.log(table.toString())
61 })
62}
63
64function write (
65 cwd /* : string */,
66 meta /* : BlinkMRCServer */
67) /* : Promise<BlinkMRCServer> */ {
68 meta = meta || {}
69 if (!meta.project) {
70 return Promise.reject(new Error('meta.project was not defined.'))
71 }
72
73 return projectMeta.write(cwd, (config) => {
74 const service = config && config.server && config.server.service ? config.server.service : {}
75 return objectMerge(config, {
76 server: {
77 project: meta.project,
78 region: meta.region,
79 service: {
80 bucket: service.bucket || values.SERVER_CLI_SERVICE_S3_BUCKET,
81 origin: service.origin || values.SERVER_CLI_SERVICE_ORIGIN
82 }
83 }
84 })
85 })
86 .then((cfg) => cfg.server || {})
87}
88
89module.exports = {
90 read,
91 display,
92 write
93}