Skip to content

Instantly share code, notes, and snippets.

@perry-mitchell
Created December 1, 2016 06:30
Show Gist options
  • Save perry-mitchell/c0904cb9156fe565a88636c801365268 to your computer and use it in GitHub Desktop.
Save perry-mitchell/c0904cb9156fe565a88636c801365268 to your computer and use it in GitHub Desktop.
Semver splitting
"use strict";
const VALID_SEMVER = /^(\d+\.\d+\.\d+)(-[a-z1-9][a-z0-9]*(?:\.[a-z0-9]+)*)*(\+[a-z0-9]+(?:\.[a-z0-9]+)*)*$/i
let lib = module.exports = {
splitVersion: function(ver) {
let [,
version,
prerelease,
meta
] = VALID_SEMVER.exec(ver);
if (prerelease) {
prerelease = prerelease.replace(/^-/, "");
}
if (meta) {
meta = meta.replace(/^\+/, "");
}
return {
version, prerelease, meta
};
}
};
console.log(lib.splitVersion("1.0.0-beta+exp.sha.5114f85"));
console.log(lib.splitVersion("1.0.0-x.7.z.92"));
console.log(lib.splitVersion("1.0.0+x.7.z.92"));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment