@amplitude/ampli
Version:
Amplitude CLI
52 lines (51 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const chalk_1 = require("chalk");
const lodash_1 = require("lodash");
const base_1 = require("./base");
const { bold, red, cyan } = chalk_1.default;
const branchInfo = (params) => {
const { name, version, isCurrent, isDeleted } = params;
const info = [];
if (isCurrent) {
info.push(bold('current'));
}
if (version) {
info.push(`version ${bold(version)}`);
}
if (isDeleted) {
info.push(red.bold('deleted in tracking plan'));
}
const openParen = !lodash_1.isEmpty(info) ? '(' : '';
const closeParen = !lodash_1.isEmpty(info) ? ')' : '';
return ` → ${name} ${openParen}${info.join(', ')}${closeParen}`;
};
class BranchAction extends base_1.default {
async run() {
const settings = this.getSettings();
const orgId = settings.getOrgId();
const workspaceId = settings.getWorkspaceId();
const branchName = settings.getBranch();
const versionNumber = settings.getVersion();
const { branches } = await this.getOrgWorkspaceBranches(orgId, workspaceId);
this.println(cyan('Branches:'));
branches
.forEach(b => {
const isCurrent = (!branchName && b.default) || branchName === b.name;
this.println(branchInfo({
name: b.name,
version: isCurrent ? versionNumber : undefined,
isCurrent,
}));
});
if (branchName && branches.every(b => b.name !== branchName)) {
this.println(branchInfo({
name: branchName,
version: versionNumber,
isCurrent: true,
isDeleted: true,
}));
}
}
}
exports.default = BranchAction;