UNPKG

semver

Version:

The semantic version parser used by npm.

49 lines (37 loc) 1.02 kB
'use strict' const parse = require('./parse') const constants = require('../internal/constants') const SemVer = require('../classes/semver') const truncate = (version, truncation, options) => { if (!constants.RELEASE_TYPES.includes(truncation)) { return null } const clonedVersion = cloneInputVersion(version, options) return clonedVersion && doTruncation(clonedVersion, truncation) } const cloneInputVersion = (version, options) => { const versionStringToParse = ( version instanceof SemVer ? version.version : version ) return parse(versionStringToParse, options) } const doTruncation = (version, truncation) => { if (isPrerelease(truncation)) { return version.version } version.prerelease = [] switch (truncation) { case 'major': version.minor = 0 version.patch = 0 break case 'minor': version.patch = 0 break } return version.format() } const isPrerelease = (type) => { return type.startsWith('pre') } module.exports = truncate