JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 121257
  • Score
    100M100P100Q163862F
  • License MIT

A tiny (187B) utility to compare semver strings

Package Exports

  • semiver

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (semiver) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

semiver Build Status

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 class.
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().

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

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