Spaces:
Sleeping
Sleeping
File size: 2,330 Bytes
f9f0fec |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# semiver [](https://travis-ci.org/lukeed/semiver)
> A tiny (187B) utility to compare semver strings.
Compare semver strings (eg, `1.8.2`, `2.0.0-next.6`, `0.0.0-alpha-1`, etc) using the [`Intl.Collator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator) class.<br>
Version suffixes are supported and are considered during comparison.
The output will always be `0`, `1`, or `-1`, allowing `semiver` to be used directly as a compare function for [`Array.sort()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort).
This module exposes three module definitions:
* **ES Module**: `dist/semiver.mjs`
* **CommonJS**: `dist/semiver.js`
* **UMD**: `dist/semiver.min.js`
## Install
```
$ npm install --save semiver
```
## Usage
```js
import semiver from 'semiver';
// A === B
semiver('0.0.0', '0.0.0'); //=> 0
semiver('1.2.3', '1.2.3'); //=> 0
// A > B
semiver('2.1.0', '1.9.0'); //=> 1
semiver('1.9.1', '1.9.0'); //=> 1
semiver('10.0.0', '1.0.0'); //=> 1
semiver('10.0.0', '8.9.0'); //=> 1
semiver('1.2.3-next.10', '1.2.3-next.6'); //=> 1
semiver('2.0.0-alpha-10', '2.0.0-alpha-6'); //=> 1
semiver('2.0.0-beta.1', '2.0.0-alpha.8'); //=> 1
// A < B
semiver('1.9.0', '2.1.0'); //=> -1
semiver('1.9.0', '1.9.1'); //=> -1
semiver('1.0.0', '10.0.0'); //=> -1
semiver('8.9.0', '10.0.0'); //=> -1
semiver('1.2.3-next.6', '1.2.3-next.10'); //=> -1
semiver('2.0.0-alpha-6', '2.0.0-alpha-10'); //=> -1
semiver('2.0.0-alpha.8', '2.0.0-beta.1'); //=> -1
// Sorting
[
'4.11.6', '4.2.0',
'1.5.19', '1.5.5',
'1.0.0', '1.0.0-rc.1',
'1.2.3', '1.2.3-alpha',
'1.0.0-alpha.1', '1.0.0-alpha',
'1.0.0-beta.11', '1.0.0-beta'
].sort(semiver);
/*
[ '1.0.0-alpha',
'1.0.0-alpha.1',
'1.0.0-beta',
'1.0.0-beta.11',
'1.0.0-rc.1',
'1.0.0',
'1.2.3-alpha',
'1.2.3',
'1.5.5',
'1.5.19',
'4.2.0',
'4.11.6' ]
*/
```
## API
### semiver(a, b)
Returns: `Number`
* `0` indicates that `a` is equal to `b`
* `-1` indicates that `a` is less than `b`
* `1` indicates that `a` is greater than `b`
#### a
Type: `String`
The input string to compare.
#### b
Type: `String`
The string to compare against.
## License
MIT © [Luke Edwards](https://lukeed.com)
|