aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/semver/functions/truncate.js
diff options
context:
space:
mode:
authorpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
committerpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
commit55a4f1fc869e41aca748c63d3018f0448b1606e0 (patch)
treed132d1d01772b6d53faee3e63c534dea5706b78a /node_modules/semver/functions/truncate.js
downloadcrud-55a4f1fc869e41aca748c63d3018f0448b1606e0.tar.gz
first commit
Diffstat (limited to 'node_modules/semver/functions/truncate.js')
-rw-r--r--node_modules/semver/functions/truncate.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/semver/functions/truncate.js b/node_modules/semver/functions/truncate.js
new file mode 100644
index 0000000..8314e4e
--- /dev/null
+++ b/node_modules/semver/functions/truncate.js
@@ -0,0 +1,48 @@
+'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