| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  | ## semver-utils.js
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | Sponsored by [ppl](https://ppl.family) | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | Some utils that aren't provided by the mainstream `semver` module. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 16:34:54 -06:00
										 |  |  | ### Usage
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```bash | 
					
						
							|  |  |  | npm install --save semver-utils | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```javascript | 
					
						
							|  |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  | var semverUtils = require('semver-utils'); | 
					
						
							|  |  |  | var version = require('./package.json').version; | 
					
						
							|  |  |  | var semver = semverUtils.parse(version); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 16:34:54 -06:00
										 |  |  | console.log(semver); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  | ## API
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 16:35:21 -06:00
										 |  |  |   * `semverUtils.parse(semverString)` | 
					
						
							|  |  |  |   * `semverUtils.stringify(semverObject)` | 
					
						
							|  |  |  |   * `semverUtils.parseRange(rangeString)` | 
					
						
							|  |  |  |   * `semverUtils.stringifyRange(rangeArray)` | 
					
						
							| 
									
										
										
										
											2014-02-24 16:34:54 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### semverUtils.parse(semverString)
 | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | Turns a string such as `1.0.6-1+build-623` into the object | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  |     { semver:   '1.0.6-1+build-623' | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  |     , version:  '1.0.6' | 
					
						
							|  |  |  |     , major:    '1' | 
					
						
							|  |  |  |     , minor:    '0' | 
					
						
							|  |  |  |     , patch:    '6' | 
					
						
							|  |  |  |     , release:  '1' | 
					
						
							|  |  |  |     , build:    'build-623' | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-24 18:31:42 -06:00
										 |  |  | returns `null` on **error** | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 16:35:47 -06:00
										 |  |  | ### semverUtils.stringify(semverObject)
 | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | Creates a string such as `1.0.6-1+build-623` from the object | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  |     { major:    '1' | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  |     , minor:    '0' | 
					
						
							|  |  |  |     , patch:    '6' | 
					
						
							|  |  |  |     , release:  '1' | 
					
						
							|  |  |  |     , build:    'build-623' | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 16:35:47 -06:00
										 |  |  | ### semverUtils.parseRange(rangeString)
 | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | A solution to <https://github.com/isaacs/node-semver/issues/10> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Parses a range string into an array of semver objects | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 15:04:10 -04:00
										 |  |  | `>= 1.1.7 < 2.0.0 || 1.1.3` becomes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             "semver": ">= v1.1.7" | 
					
						
							|  |  |  |           , "operator": ">=" | 
					
						
							|  |  |  |           , "major": 1 | 
					
						
							|  |  |  |           , "minor": 1 | 
					
						
							|  |  |  |           , "patch": 7 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       , { | 
					
						
							|  |  |  |             "semver": "< v2.0.0" | 
					
						
							|  |  |  |           , "operator": "<" | 
					
						
							|  |  |  |           , "major": 2 | 
					
						
							|  |  |  |           , "minor": 0 | 
					
						
							|  |  |  |           , "patch": 0 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       , { | 
					
						
							|  |  |  |             "operator": "||" | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       , { | 
					
						
							|  |  |  |             "semver": "v1.1.3" | 
					
						
							|  |  |  |           , "operator": "=" | 
					
						
							|  |  |  |           , "major": 1 | 
					
						
							|  |  |  |           , "minor": 1 | 
					
						
							|  |  |  |           , "patch": 3 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 16:35:47 -06:00
										 |  |  | ### semverUtils.stringifyRange(rangeArray)
 | 
					
						
							| 
									
										
										
										
											2013-05-17 15:04:10 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | Creates a range string such as `>= 1.1.7 < 2.0.0 || 1.1.3` | 
					
						
							|  |  |  | from an array of semver objects (and operators) such as | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     [ | 
					
						
							| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  |         { "semver": ">= v1.1.7" | 
					
						
							|  |  |  |         , "operator": ">=" | 
					
						
							|  |  |  |         , "major": 1 | 
					
						
							|  |  |  |         , "minor": 1 | 
					
						
							|  |  |  |         , "patch": 7 | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  |       , { "semver": "< v2.0.0" | 
					
						
							|  |  |  |         , "operator": "<" | 
					
						
							|  |  |  |         , "major": 2 | 
					
						
							|  |  |  |         , "minor": 0 | 
					
						
							|  |  |  |         , "patch": 0 | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  |       , { "operator": "||" | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2018-03-28 00:08:49 -06:00
										 |  |  |       , { "semver": "v1.1.3" | 
					
						
							|  |  |  |         , "operator": "=" | 
					
						
							|  |  |  |         , "major": 1 | 
					
						
							|  |  |  |         , "minor": 1 | 
					
						
							|  |  |  |         , "patch": 3 | 
					
						
							| 
									
										
										
										
											2013-04-24 17:38:53 -06:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Obsolete Work
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   * https://github.com/mojombo/semver/issues/32 | 
					
						
							|  |  |  |   * https://gist.github.com/coolaj86/3012865 | 
					
						
							|  |  |  |   * https://github.com/isaacs/node-semver/issues/10 | 
					
						
							|  |  |  |   * https://github.com/mojombo/semver.org/issues/59 |