12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.deploy = void 0;
- const uploader_1 = require("./uploader");
- const detectProjectRoot_1 = require("../../detectProjectRoot");
- const listFiles_1 = require("../../listFiles");
- const logger_1 = require("../../logger");
- const track_1 = require("../../track");
- const utils_1 = require("../../utils");
- const colorette_1 = require("colorette");
- const ora = require("ora");
- const fsutils_1 = require("../../fsutils");
- const error_1 = require("../../error");
- async function deploy(context, options) {
- var _a, _b;
- if (!((_a = context.hosting) === null || _a === void 0 ? void 0 : _a.deploys)) {
- return;
- }
- const spinner = ora();
- function updateSpinner(newMessage, debugging) {
- if (debugging) {
- (0, utils_1.logLabeledBullet)("hosting", newMessage);
- }
- else {
- spinner.text = `${(0, colorette_1.bold)((0, colorette_1.cyan)(" hosting:"))} ${newMessage}`;
- }
- }
- async function runDeploys(deploys, debugging) {
- var _a;
- const deploy = deploys.shift();
- if (!deploy) {
- return;
- }
- if (!((_a = deploy.config) === null || _a === void 0 ? void 0 : _a.public)) {
- (0, utils_1.logLabeledBullet)(`hosting[${deploy.config.site}]`, 'no "public" directory to upload, continuing with release');
- return runDeploys(deploys, debugging);
- }
- (0, utils_1.logLabeledBullet)(`hosting[${deploy.config.site}]`, "beginning deploy...");
- const t0 = Date.now();
- const publicDir = options.config.path(deploy.config.public);
- if (!(0, fsutils_1.dirExistsSync)(`${publicDir}`)) {
- throw new error_1.FirebaseError(`Directory '${deploy.config.public}' for Hosting does not exist.`);
- }
- const files = (0, listFiles_1.listFiles)(publicDir, deploy.config.ignore);
- (0, utils_1.logLabeledBullet)(`hosting[${deploy.config.site}]`, `found ${files.length} files in ${(0, colorette_1.bold)(deploy.config.public)}`);
- let concurrency = 200;
- const envConcurrency = (0, utils_1.envOverride)("FIREBASE_HOSTING_UPLOAD_CONCURRENCY", "");
- if (envConcurrency) {
- const c = parseInt(envConcurrency, 10);
- if (!isNaN(c) && c > 0) {
- concurrency = c;
- }
- }
- logger_1.logger.debug(`[hosting] uploading with ${concurrency} concurrency`);
- const uploader = new uploader_1.Uploader({
- version: deploy.version,
- files: files,
- public: publicDir,
- cwd: options.cwd,
- projectRoot: (0, detectProjectRoot_1.detectProjectRoot)(options),
- uploadConcurrency: concurrency,
- });
- const progressInterval = setInterval(() => updateSpinner(uploader.statusMessage(), debugging), debugging ? 2000 : 200);
- if (!debugging) {
- spinner.start();
- }
- try {
- await uploader.start();
- }
- catch (err) {
- void (0, track_1.track)("Hosting Deploy", "failure");
- throw err;
- }
- finally {
- clearInterval(progressInterval);
- updateSpinner(uploader.statusMessage(), debugging);
- }
- if (!debugging) {
- spinner.stop();
- }
- (0, utils_1.logLabeledSuccess)(`hosting[${deploy.config.site}]`, "file upload complete");
- const dt = Date.now() - t0;
- logger_1.logger.debug(`[hosting] deploy completed after ${dt}ms`);
- void (0, track_1.track)("Hosting Deploy", "success", dt);
- return runDeploys(deploys, debugging);
- }
- const debugging = !!(options.debug || options.nonInteractive);
- const deploys = [...(((_b = context.hosting) === null || _b === void 0 ? void 0 : _b.deploys) || [])];
- return runDeploys(deploys, debugging);
- }
- exports.deploy = deploy;
|