123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.command = void 0;
- const command_1 = require("../command");
- const controller = require("../emulator/controller");
- const commandUtils = require("../emulator/commandUtils");
- const logger_1 = require("../logger");
- const registry_1 = require("../emulator/registry");
- const types_1 = require("../emulator/types");
- const clc = require("colorette");
- const constants_1 = require("../emulator/constants");
- const utils_1 = require("../utils");
- const Table = require("cli-table");
- function stylizeLink(url) {
- return clc.underline(clc.bold(url));
- }
- exports.command = new command_1.Command("emulators:start")
- .before(commandUtils.setExportOnExitOptions)
- .before(commandUtils.beforeEmulatorCommand)
- .description("start the local Firebase emulators")
- .option(commandUtils.FLAG_ONLY, commandUtils.DESC_ONLY)
- .option(commandUtils.FLAG_INSPECT_FUNCTIONS, commandUtils.DESC_INSPECT_FUNCTIONS)
- .option(commandUtils.FLAG_IMPORT, commandUtils.DESC_IMPORT)
- .option(commandUtils.FLAG_EXPORT_ON_EXIT, commandUtils.DESC_EXPORT_ON_EXIT)
- .action((options) => {
- const killSignalPromise = commandUtils.shutdownWhenKilled(options);
- return Promise.race([
- killSignalPromise,
- (async () => {
- let deprecationNotices;
- try {
- ({ deprecationNotices } = await controller.startAll(options));
- }
- catch (e) {
- await controller.cleanShutdown();
- throw e;
- }
- printEmulatorOverview(options);
- for (const notice of deprecationNotices) {
- (0, utils_1.logLabeledWarning)("emulators", notice, "warn");
- }
- return killSignalPromise;
- })(),
- ]);
- });
- function printEmulatorOverview(options) {
- const reservedPorts = [];
- for (const internalEmulator of [types_1.Emulators.LOGGING]) {
- const info = registry_1.EmulatorRegistry.getInfo(internalEmulator);
- if (info) {
- reservedPorts.push(info.port);
- }
- controller.filterEmulatorTargets(options).forEach((emulator) => {
- var _a;
- reservedPorts.push(...(((_a = registry_1.EmulatorRegistry.getInfo(emulator)) === null || _a === void 0 ? void 0 : _a.reservedPorts) || []));
- });
- }
- const reservedPortsString = reservedPorts.length > 0 ? reservedPorts.join(", ") : "None";
- const uiRunning = registry_1.EmulatorRegistry.isRunning(types_1.Emulators.UI);
- const head = ["Emulator", "Host:Port"];
- if (uiRunning) {
- head.push(`View in ${constants_1.Constants.description(types_1.Emulators.UI)}`);
- }
- const successMessageTable = new Table();
- let successMsg = `${clc.green("✔")} ${clc.bold("All emulators ready! It is now safe to connect your app.")}`;
- if (uiRunning) {
- successMsg += `\n${clc.cyan("i")} View Emulator UI at ${stylizeLink(registry_1.EmulatorRegistry.url(types_1.Emulators.UI).toString())}`;
- }
- successMessageTable.push([successMsg]);
- const emulatorsTable = new Table({
- head: head,
- style: {
- head: ["yellow"],
- },
- });
- emulatorsTable.push(...controller
- .filterEmulatorTargets(options)
- .map((emulator) => {
- const emulatorName = constants_1.Constants.description(emulator).replace(/ emulator/i, "");
- const isSupportedByUi = types_1.EMULATORS_SUPPORTED_BY_UI.includes(emulator);
- const listen = commandUtils.getListenOverview(emulator);
- if (!listen) {
- const row = [emulatorName, "Failed to initialize (see above)"];
- if (uiRunning) {
- row.push("");
- }
- return row;
- }
- let uiLink = "n/a";
- if (isSupportedByUi && uiRunning) {
- const url = registry_1.EmulatorRegistry.url(types_1.Emulators.UI);
- url.pathname = `/${emulator}`;
- uiLink = stylizeLink(url.toString());
- }
- return [emulatorName, listen, uiLink];
- })
- .map((col) => col.slice(0, head.length))
- .filter((v) => v));
- let extensionsTable = "";
- if (registry_1.EmulatorRegistry.isRunning(types_1.Emulators.EXTENSIONS)) {
- const extensionsEmulatorInstance = registry_1.EmulatorRegistry.get(types_1.Emulators.EXTENSIONS);
- extensionsTable = extensionsEmulatorInstance.extensionsInfoTable(options);
- }
- logger_1.logger.info(`\n${successMessageTable}
-
- ${emulatorsTable}
- ${registry_1.EmulatorRegistry.isRunning(types_1.Emulators.HUB)
- ? clc.blackBright(" Emulator Hub running at ") + registry_1.EmulatorRegistry.url(types_1.Emulators.HUB).host
- : clc.blackBright(" Emulator Hub not running.")}
- ${clc.blackBright(" Other reserved ports:")} ${reservedPortsString}
- ${extensionsTable}
- Issues? Report them at ${stylizeLink("https://github.com/firebase/firebase-tools/issues")} and attach the *-debug.log files.
- `);
- }
|