Bindings to the official NPM semver package
npm install --save @gladimdim/bs-semver
yarn add @gladimdim/bs-semver --saveThen 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 buildnpm run watchThe 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") ; // nullIn 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 */
}