-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathlib.js
More file actions
30 lines (25 loc) · 724 Bytes
/
lib.js
File metadata and controls
30 lines (25 loc) · 724 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const semver = require('semver')
function isNullString(string) {
return (
!string || string.length == 0 || string == 'null' || string == 'undefined'
)
}
function semanticVersion(tag, prefix = '') {
try {
let cleanTag = tag
if (prefix && cleanTag.startsWith(prefix)) {
cleanTag = cleanTag.slice(prefix.length)
}
const [version, pre] = cleanTag.split('-', 2)
const sem = semver.parse(semver.coerce(version))
if (!isNullString(pre)) {
sem.raw = `${sem.raw}-${pre}`
sem.version = `${sem.version}-${pre}`
sem.prerelease = semver.prerelease(`0.0.0-${pre}`)
}
return sem
} catch (_) {
return null
}
}
module.exports = { isNullString, semanticVersion }