26 lines
658 B
JavaScript
26 lines
658 B
JavaScript
import esMain from 'es-main';
|
|
import process from 'process';
|
|
import semver from 'semver';
|
|
import {promises as fs} from 'fs';
|
|
|
|
async function nextVersion() {
|
|
const pkg = await fs.readFile('../package.json', {encoding: 'utf8'});
|
|
const version = JSON.parse(pkg).version;
|
|
const s = semver.parse(version);
|
|
if (!s) {
|
|
throw new Error(`Invalid version ${version}`);
|
|
}
|
|
return `${s.major}.${s.minor}.${s.patch}-dev.${Date.now()}`;
|
|
}
|
|
|
|
if (esMain(import.meta)) {
|
|
nextVersion()
|
|
.then((version) => {
|
|
process.stdout.write(`${version}\n`);
|
|
})
|
|
.catch((error) => {
|
|
process.stderr.write(`${error}\n`);
|
|
process.exit(1);
|
|
});
|
|
}
|