const path = require('path'); const semver = require('semver'); const rootUtils = require('@tryghost/root-utils'); const packageInfo = require(path.join(rootUtils.getProcessRoot(), 'package.json')); const version = packageInfo.version; const plainVersion = version.match(/^(\d+\.)?(\d+\.)?(\d+)/)[0]; let _private = {}; _private.compose = function compose(type) { switch (type) { case 'pre': return plainVersion + '-' + semver.prerelease(version).join('.'); default: return version; } }; // major.minor module.exports.safe = version.match(/^(\d+\.)?(\d+)/)[0]; // major.minor.patch-{prerelease} module.exports.full = semver.prerelease(version) ? _private.compose('pre') : plainVersion; // original string in package.json (can contain pre-release and build suffix) module.exports.original = version;