@tinymce/beehive-flow
Version:
A CLI tool implementing the beehive flow git branching process
55 lines • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stamp = exports.chooseNewVersion = exports.formatDate = exports.timeFormat = void 0;
const tslib_1 = require("tslib");
const simple_git_1 = require("simple-git");
const luxon_1 = require("luxon");
const Git = tslib_1.__importStar(require("../utils/Git"));
const PackageJson_1 = require("../core/PackageJson");
const PreRelease = tslib_1.__importStar(require("../core/PreRelease"));
const BranchLogic_1 = require("../core/BranchLogic");
const Messages_1 = require("../core/Messages");
exports.timeFormat = 'yyyyMMddHHmmssSSS';
const formatDate = (timeMillis) => luxon_1.DateTime.fromMillis(timeMillis, { zone: 'utc' }).toFormat(exports.timeFormat);
exports.formatDate = formatDate;
const chooseNewVersion = (branchState, version, gitSha, timeMillis) => {
if (branchState === "releaseReady" /* BranchState.ReleaseReady */) {
return version;
}
else {
const prePre = (() => {
switch (branchState) {
case "releaseCandidate" /* BranchState.ReleaseCandidate */:
return version.preRelease;
case "feature" /* BranchState.Feature */:
return PreRelease.featureBranch;
case "hotfix" /* BranchState.Hotfix */:
return PreRelease.hotfixBranch;
case "spike" /* BranchState.Spike */:
return PreRelease.spikeBranch;
}
})();
const dt = (0, exports.formatDate)(timeMillis);
const preRelease = `${prePre}.${dt}.sha${gitSha}`;
const buildMetaData = undefined;
return {
...version,
preRelease,
buildMetaData
};
}
};
exports.chooseNewVersion = chooseNewVersion;
const stamp = async (args) => {
(0, Messages_1.printHeaderMessage)(args);
const dir = args.workingDir;
const git = (0, simple_git_1.gitP)(dir);
const gitSha = await Git.currentRevisionShortSha(git);
const branchDetails = await (0, BranchLogic_1.getBranchDetails)(dir);
const newVersion = (0, exports.chooseNewVersion)(branchDetails.branchState, branchDetails.version, gitSha, Date.now());
const rootModule = branchDetails.rootModule;
await (0, PackageJson_1.writePackageJsonFileWithNewVersion)(rootModule.packageJson, newVersion, rootModule.packageJsonFile);
console.log('Note: changes have been made to package.json but they have not been committed.');
};
exports.stamp = stamp;
//# sourceMappingURL=Stamp.js.map