Skip to content

μ-SemVer, a micro parser, version resolver and sorting tool for Semantic Version (~1kb)

License

Notifications You must be signed in to change notification settings

alanrsoares/u-semver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

μ-semver

A micro parser, version resolver and sorting tool for Semantic Version (~1kb)

npm module Bower version Codeship

Installation

for node (via npm)

$ npm install u-semver

for the browser (via bower)

$ bower install u-semver

Usage

SemVer.resolve(range: string, versions: Array<string>, preRelease: boolean?): string
var versions = [
  '1.0.1',
  '1.1.9',
  '1.0.0',
  '2.0.0',
  '0.1.1-alpha',
  '1.3.2',
  '0.2.3-pre',
  '0.2.4-pre',
  '0.2.0',
  '0.0.12',
  '0.0.13-pre'
];

// resolving a specific version
SemVer.resolve('1.1.9', versions) //=> '1.1.9'
// resolving a patch range
SemVer.resolve('~1.0.0', versions) //=> '1.0.1'
// resolving a minor range
SemVer.resolve('^1.0.0', versions) //=> '1.3.2'
// resolving the latest version
SemVer.resolve('latest', versions) //=> '2.0.1'
// allow pre-release resolution
SemVer.resolve('^0.1.0', versions, true) //=> '0.2.4-pre'
// deny pre-release resolution
SemVer.resolve('^0.1.0', versions, false) //=> '0.2.0'

Tests by example

const VERSIONS = [
  '1.0.1',
  '1.1.9',
  '1.0.0',
  '0.1.1-alpha',
  '1.3.2',
  '0.2.3-pre',
  '0.2.4-pre',
  '0.2.4-pre.0',
  '0.2.0',
  '1.3.11',
  '0.0.12',
  '0.0.13-pre',
  '1.3.10',
  '1.3.9',
  '1.3.7',
  '1.3.12-pre.12',
  '1.3.12-pre.4',
  '2.0.0-pre',
  '2.0.0-pre.4',
  '2.0.0-pre.10',
  '2.0.0',
  '2.1.0-pre.13',
  '2.1.0-pre.2',
  '2.1.0-pre'
];
package: u-semver
  SemVer.resolve
    Given a set of versions
       should resolve 1.0.2 to undefined
       should resolve 1.0.0 to 1.0.0
       should resolve 1.0.1 to 1.0.1
       should resolve 1.3.2 to 1.3.2
       should resolve ^1.3.12 to undefined
       should resolve ^1.3.12 (pre) to 1.3.12-pre.12
       should resolve ^0.1.0 to 0.2.0
       should resolve ~1.0.0 to 1.0.1
       should resolve ~0.1.0 (pre) to 0.1.1-alpha
       should resolve ^0.1.0 (pre) to 0.2.4-pre.0
       should resolve ^0.0.1 (pre) to 0.2.4-pre.0
       should resolve ~0.0.1 to 0.0.12
       should resolve ~0.0.1 (pre) to 0.0.13-pre
       should resolve ^1.0.0 to 1.3.11
       should resolve ~1.3.0 to 1.3.11
       should resolve ^1.3.0 (pre) to 1.3.12-pre.12
       should resolve ~2.0.0 (pre) to 2.0.0
       should resolve ~2.1.0 (pre) to 2.1.0-pre.13
       should resolve latest to 2.1.0-pre.13


19 passing (70ms)

License

MIT

About

μ-SemVer, a micro parser, version resolver and sorting tool for Semantic Version (~1kb)

Resources

License

Stars

Watchers

Forks

Packages

No packages published