@vaadin-component-factory/vcf-autocomplete
Version:
Web Component with a text input that provides a panel of suggested options.
29 lines (23 loc) • 1.79 kB
JavaScript
/* eslint-disable max-len */
const { execSync } = require('child_process');
const path = require('path');
const { readFileSync, writeFileSync } = require('fs');
const version = process.argv[2];
const semverRegex = /(?<=^[Vv]|^)(?:(?<major>(?:0|[1-9](?:(?:0|[1-9])+)*))[.](?<minor>(?:0|[1-9](?:(?:0|[1-9])+)*))[.](?<patch>(?:0|[1-9](?:(?:0|[1-9])+)*))(?:-(?<prerelease>(?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:0|[1-9](?:(?:0|[1-9])+)*))(?:[.](?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:0|[1-9](?:(?:0|[1-9])+)*)))*))?(?:[+](?<build>(?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:(?:0|[1-9])+))(?:[.](?:(?:(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?|(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)(?:[A-Za-z]|-)(?:(?:(?:0|[1-9])|(?:[A-Za-z]|-))+)?)|(?:(?:0|[1-9])+)))*))?)$/;
if (!version) {
process.exit();
}
if (!version.match(semverRegex)) {
console.error('Please enter a semantic version (e.g. 1.0.0).');
process.exit();
}
const srcPath = path.resolve(__dirname, '../src/', 'vcf-autocomplete.js');
let srcString = readFileSync(srcPath, 'utf8');
const replaceRegex = /get version.*?'(\d.\d.\d)';/s;
const matches = replaceRegex.exec(srcString);
srcString = srcString.replace(matches[0], matches[0].replace(matches[1], version));
writeFileSync(srcPath, srcString);
execSync(`git commit -a -m "Update src version: ${matches[1]} -> ${version}"`);
execSync(`npm version ${version}`);
execSync('git push');
execSync('npm publish --access public');