Bindings to the official NPM semver package
npm install --save @gladimdim/bs-semver
yarn add @gladimdim/bs-semver --save
Then add @gladimdim/bs-semver
to bs-dependencies
in your bsconfig.json
:
{
...
"bs-dependencies": ["@gladimdim/bs-semver"]
}
Exposed function can be accessed in the same way, as in JavaScript:
let minor = Semver.minor("3.5.0"); /* 5 */
You can construct Semver object: JavaScript version:
const semver = new Semver("3.5.0");
const minor = semver.minor;
const patch = semver.patch;
ReasonML:
let semver = Semver.createSemver("3.5.0");
let minor = semver##minor;
let patch = semver##patch;
You can reference tests/semver_spec.re tests for more examples.
npm run build
npm run watch
The following functions are covered:
Some functions in semver might return null as a valid result. Documentation for semver does not state, which functions return null as a valid value. So I had to check all of these bindings manually.
For example, in JS following code returns null:
semver.valid("1.5.1a") ; // null
In these bindings, this nullable return type is converted to Option via Js.Nullable.toOption.
So, in Reason you can do like this:
semver.valid("1.5.1a") |> result =>
switch result {
| Some(v) => v /*string with valid semver version*/
| None => /* handle case, when input into valid call contained invalid semver function */
}