angular/devtools/projects/shell-chrome/set-version.js
AleksanderBodurri 2a1ff17b42 refactor(devtools): run tslint --fix on devtools codebase
This commit runs tslint --fix with the angular/angular tslint configuration on the files inside the devtools codebase.

Notably, the file-header rule in `tslint.json` was missing a default attribute. This commit adds that default attribute and sets it to the
license header that is present in all files in this repo. After running tslint --fix with this default added, this commit added the license header to all files in the devtools directory. Note for the reviewer: the automatically added license headers were added as comments with the "/*!" prefix. Since we want these comments removed in builds, and the rest of the codebase uses "/**", a simple find and replace was performed on the devtools directory to change these prefixes to "/**".
2022-01-26 16:35:31 -05:00

62 lines
1.7 KiB
JavaScript

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
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());
// tslint:disable-next-line:no-console
console.log('Current version', chalk.yellow(manifest.version));
// tslint:disable-next-line:no-console
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);
});
});