(tag)
| 7 | |
| 8 | // Get version from git tag name. |
| 9 | const getVersionFromTag = function(tag) { |
| 10 | const parseVersion = function(seg) { |
| 11 | // Handle upm suffix. |
| 12 | const upmRe = /(_|-)(upm|master)$/i; |
| 13 | seg = seg.replace(upmRe, ""); |
| 14 | return semver.clean(seg.toLowerCase(), { loose: true }); |
| 15 | }; |
| 16 | const parseSeg = function(tag, separator) { |
| 17 | const segs = tag.split(separator); |
| 18 | for (let i = 0; i < segs.length; i++) { |
| 19 | const arr = segs.slice(segs.length - i - 1, segs.length); |
| 20 | const text = arr.join(separator); |
| 21 | version = parseVersion(text); |
| 22 | if (version) return version; |
| 23 | } |
| 24 | }; |
| 25 | // Try parsing the tag. |
| 26 | let version = parseVersion(tag); |
| 27 | // Try parsing a path-like tag: prefix/{version}. |
| 28 | if (!version) version = parseSeg(tag, "/"); |
| 29 | // Try parsing a hyphen-like tag: prefix-{version}. |
| 30 | if (!version) version = parseSeg(tag, "-"); |
| 31 | // Try parsing a underscore-like tag: prefix_{version}. |
| 32 | if (!version) version = parseSeg(tag, "_"); |
| 33 | return version; |
| 34 | }; |
| 35 | |
| 36 | module.exports = { |
| 37 | semverRe, |
no test coverage detected