firebase-tools
Version:
Command-Line Interface for Firebase
37 lines (36 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.command = void 0;
const clc = require("colorette");
const checkMinRequiredVersion_1 = require("../checkMinRequiredVersion");
const command_1 = require("../command");
const projectUtils_1 = require("../projectUtils");
const extensionsHelper_1 = require("../extensions/extensionsHelper");
const requirePermissions_1 = require("../requirePermissions");
const migrate_1 = require("../extensions/migrate");
const kits_1 = require("../functions/kits");
const logger_1 = require("../logger");
const utils_1 = require("../utils");
exports.command = new command_1.Command("ext:migrate")
.description("migrate an extension instance to a function kit")
.option("-p, --package <package>", "optional kit package override to use")
.option("-i, --ext-instance <instanceId>", "extension instance ID to migrate")
.option("-e, --extension <extensionRef>", "extension reference or name to migrate")
.before(requirePermissions_1.requirePermissions, ["firebaseextensions.instances.list"])
.before(extensionsHelper_1.ensureExtensionsApiEnabled)
.before(checkMinRequiredVersion_1.checkMinRequiredVersion, "extMinVersion")
.action(async (options) => {
const projectId = (0, projectUtils_1.needProjectId)(options);
if (options.package) {
(0, kits_1.validateNpmPackageName)(options.package);
}
const plan = await (0, migrate_1.createMigrationPlan)(projectId, {
package: options.package,
extInstance: options.extInstance,
extension: options.extension,
nonInteractive: options.nonInteractive,
});
(0, utils_1.logLabeledBullet)(extensionsHelper_1.logPrefix, `Selected instance ${clc.bold(plan.instanceId)} (${plan.kitPackage}) for migration.`);
logger_1.logger.info("TODO: Draw the rest of the owl");
return plan;
});