semver-utils.js
| Sponsored by ppl
Some utils that aren't provided by the mainstream semver
module.
Usage
npm install --save semver-utils
'use strict';
var semverUtils = require('semver-utils');
var version = require('./package.json').version;
var semver = semverUtils.parse(version);
console.log(semver);
API
semverUtils.parse(semverString)
semverUtils.stringify(semverObject)
semverUtils.parseRange(rangeString)
semverUtils.stringifyRange(rangeArray)
semverUtils.parse(semverString)
Turns a string such as 1.0.6-1+build-623
into the object
{ semver: '1.0.6-1+build-623'
, version: '1.0.6'
, major: '1'
, minor: '0'
, patch: '6'
, release: '1'
, build: 'build-623'
}
returns null
on error
semverUtils.stringify(semverObject)
Creates a string such as 1.0.6-1+build-623
from the object
{ major: '1'
, minor: '0'
, patch: '6'
, release: '1'
, build: 'build-623'
}
semverUtils.parseRange(rangeString)
A solution to https://github.com/isaacs/node-semver/issues/10
Parses a range string into an array of semver objects
>= 1.1.7 < 2.0.0 || 1.1.3
becomes
[
{
"semver": ">= v1.1.7"
, "operator": ">="
, "major": 1
, "minor": 1
, "patch": 7
}
, {
"semver": "< v2.0.0"
, "operator": "<"
, "major": 2
, "minor": 0
, "patch": 0
}
, {
"operator": "||"
}
, {
"semver": "v1.1.3"
, "operator": "="
, "major": 1
, "minor": 1
, "patch": 3
}
]
semverUtils.stringifyRange(rangeArray)
Creates a range string such as >= 1.1.7 < 2.0.0 || 1.1.3
from an array of semver objects (and operators) such as
[
{ "semver": ">= v1.1.7"
, "operator": ">="
, "major": 1
, "minor": 1
, "patch": 7
}
, { "semver": "< v2.0.0"
, "operator": "<"
, "major": 2
, "minor": 0
, "patch": 0
}
, { "operator": "||"
}
, { "semver": "v1.1.3"
, "operator": "="
, "major": 1
, "minor": 1
, "patch": 3
}
]