UNPKG

firebase-ci

Version:

Simplified Firebase interaction for continuous integration including deploying hosting, functions, and database/storage rules.

66 lines (47 loc) 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = serve; var _get2 = _interopRequireDefault(require("lodash/get")); var _chalk = _interopRequireDefault(require("chalk")); var _logger = require("../utils/logger"); var _files = require("../utils/files"); var _async = require("../utils/async"); var _commands = require("../utils/commands"); var _ci = require("../utils/ci"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const skipPrefix = 'Skipping firebase-ci serve'; async function serve(opts) { const settings = (0, _files.getFile)('.firebaserc'); const fallbackProjectName = (0, _ci.getFallbackProjectKey)(); const projectKey = (0, _ci.getProjectKey)(opts); const projectName = (0, _get2.default)(settings, `projects.${projectKey}`); const fallbackProjectSetting = (0, _get2.default)(settings, `projects.${fallbackProjectName}`); if (!projectName) { const nonProjectBranch = `${skipPrefix} - Project ${_chalk.default.cyan(projectKey)} is not an alias, checking for fallback...`; (0, _logger.warn)(nonProjectBranch); if (!fallbackProjectSetting) { const nonFallbackBranch = `${skipPrefix} - Fallback Project: ${_chalk.default.cyan(fallbackProjectName)} is a not an alias, exiting...`; (0, _logger.warn)(nonFallbackBranch); return nonProjectBranch; } return null; } (0, _logger.info)(`Calling serve for project ${_chalk.default.cyan(projectName)} (alias ${_chalk.default.cyan(projectKey)})`); const serveArgs = ['serve', '-P', projectKey]; const onlyString = opts && opts.only ? `--only ${opts.only}` : ''; if (onlyString) { serveArgs.push(onlyString); } const [serveErr] = await (0, _async.to)((0, _commands.runCommand)({ command: 'firebase', args: serveArgs })); if (serveErr) { const errMsg = `Error calling serve for ${_chalk.default.cyan(projectName)} (alias ${_chalk.default.cyan(projectKey)}) :`; (0, _logger.error)(errMsg, serveErr); throw new Error(errMsg); } (0, _logger.info)(`Successfully called serve for project ${_chalk.default.cyan(projectName)} (alias ${_chalk.default.cyan(projectKey)})`); }