forked from dienianindya/gsi_ess_mobile
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
2.2 KiB
48 lines
2.2 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.command = void 0;
|
|
const command_1 = require("../command");
|
|
const error_1 = require("../error");
|
|
const prompt_1 = require("../prompt");
|
|
const requireAuth_1 = require("../requireAuth");
|
|
const rollback_1 = require("../remoteconfig/rollback");
|
|
const requirePermissions_1 = require("../requirePermissions");
|
|
const versionslist_1 = require("../remoteconfig/versionslist");
|
|
const projectUtils_1 = require("../projectUtils");
|
|
exports.command = new command_1.Command("remoteconfig:rollback")
|
|
.description("roll back a project's published Remote Config template to the one specified by the provided version number")
|
|
.before(requireAuth_1.requireAuth)
|
|
.before(requirePermissions_1.requirePermissions, ["cloudconfig.configs.get", "cloudconfig.configs.update"])
|
|
.option("-v, --version-number <versionNumber>", "rollback to the specified version of the template")
|
|
.withForce()
|
|
.action(async (options) => {
|
|
var _a;
|
|
const templateVersion = await (0, versionslist_1.getVersions)((0, projectUtils_1.needProjectId)(options), 1);
|
|
let targetVersion = 0;
|
|
if (options.versionNumber) {
|
|
targetVersion = options.versionNumber;
|
|
}
|
|
else {
|
|
if ((_a = templateVersion === null || templateVersion === void 0 ? void 0 : templateVersion.versions[0]) === null || _a === void 0 ? void 0 : _a.versionNumber) {
|
|
const latestVersion = templateVersion.versions[0].versionNumber.toString();
|
|
const previousVersion = parseInt(latestVersion) - 1;
|
|
targetVersion = previousVersion;
|
|
}
|
|
}
|
|
if (targetVersion <= 0) {
|
|
throw new error_1.FirebaseError(`Failed to rollback Firebase Remote Config template for project to version` +
|
|
targetVersion +
|
|
`. ` +
|
|
`Invalid Version Number`);
|
|
}
|
|
const confirm = await (0, prompt_1.promptOnce)({
|
|
type: "confirm",
|
|
name: "force",
|
|
message: "Proceed to rollback template to version " + targetVersion + "?",
|
|
default: false,
|
|
}, options);
|
|
if (!confirm) {
|
|
return;
|
|
}
|
|
return (0, rollback_1.rollbackTemplate)((0, projectUtils_1.needProjectId)(options), targetVersion);
|
|
});
|