angular/devtools/projects/shell-chrome/set-version.js
AleksanderBodurri 8b84412d76 refactor(devtools): run ng-dev format on angular devtools files
Formats the entire devtools directory with the ng-dev formatting tool. Previously we relied on prettier, so this commit also remove prettier from devtools' dependencies.
2022-01-26 16:35:30 -05:00

51 lines
1.4 KiB
JavaScript

const chalk = require('chalk');
const {createInterface} = require('readline');
const semver = require('semver');
const {writeFileSync, readFileSync} = require('fs');
const {join} = require('path');
const MANIFEST_PATH = join(__dirname, 'src/manifest.json');
const manifest = JSON.parse(readFileSync(MANIFEST_PATH).toString());
console.log('Current version', chalk.yellow(manifest.version));
console.log('Current version name', chalk.yellow(manifest.version_name));
const setVersion = (nextVersion) => {
manifest.version = nextVersion;
manifest.version_name = nextVersion;
writeFileSync(MANIFEST_PATH, JSON.stringify(manifest, null, 2));
};
const answerMap = {
yes: true,
y: true,
no: false,
n: false,
};
const rl = createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question(chalk.yellowBright('Set the current version: '), (nextVersion) => {
if (!semver.valid(nextVersion)) {
console.error(chalk.red('Invalid version'));
}
if (semver.gt(nextVersion, manifest.version)) {
rl.close();
setVersion(nextVersion);
return;
}
console.error(chalk.yellow('Next version cannot be smaller or equal to the previous one'));
rl.question('Are you sure you want to continue? (y/n) ', (answer) => {
rl.close();
answer = answer.toLowerCase();
if (!answerMap[answer]) {
throw new Error('Exiting');
}
setVersion(nextVersion);
});
});