Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rootslab/hoar
Hoar, a light semantic versioning parser/comparator.
https://github.com/rootslab/hoar
semver semver-format versioning
Last synced: about 1 month ago
JSON representation
Hoar, a light semantic versioning parser/comparator.
- Host: GitHub
- URL: https://github.com/rootslab/hoar
- Owner: rootslab
- License: mit
- Created: 2014-05-11T08:52:36.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-02-10T14:40:55.000Z (almost 7 years ago)
- Last Synced: 2024-10-26T22:19:30.022Z (3 months ago)
- Topics: semver, semver-format, versioning
- Language: JavaScript
- Size: 27.3 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
### Hoar
[![NPM VERSION](http://img.shields.io/npm/v/hoar.svg?style=flat)](https://www.npmjs.org/package/hoar)
[![CODACY BADGE](https://img.shields.io/codacy/b18ed7d95b0a4707a0ff7b88b30d3def.svg?style=flat)](https://www.codacy.com/public/44gatti/hoar)
[![CODECLIMATE-TEST-COVERAGE](https://img.shields.io/codeclimate/c/rootslab/hoar.svg?style=flat)](https://codeclimate.com/github/rootslab/hoar)
[![LICENSE](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/rootslab/hoar#mit-license)![NODE VERSION](https://img.shields.io/node/v/hoar.svg)
[![TRAVIS CI BUILD](http://img.shields.io/travis/rootslab/hoar.svg?style=flat)](http://travis-ci.org/rootslab/hoar)
[![BUILD STATUS](http://img.shields.io/david/rootslab/hoar.svg?style=flat)](https://david-dm.org/rootslab/hoar)
[![DEVDEPENDENCY STATUS](http://img.shields.io/david/dev/rootslab/hoar.svg?style=flat)](https://david-dm.org/rootslab/hoar#info=devDependencies)[![NPM MONTHLY](http://img.shields.io/npm/dm/hoar.svg?style=flat)](http://npm-stat.com/charts.html?package=hoar)
![NPM YEARLY](https://img.shields.io/npm/dy/hoar.svg)[![NPM GRAPH](https://nodei.co/npm/hoar.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/hoar/)
> **_Hoar_**, a fast and light semantic versioning parser/comparator.
> A **_semantic version_**, or **_semver_**, is described by the **v2.0.0** specification found at __http://semver.org/__ or at this __[github repo](https://github.com/mojombo/semver/blob/master/semver.md)__.
### Install
```bash
$ npm install hoar [-g]
// clone repo
$ git clone [email protected]:rootslab/hoar.git
```> __require__ returns an helper hash/obj.
```javascript
var Hoar = require( 'hoar' );
```### Run Tests
```bash
$ cd hoar/
$ npm test
```### Sample Usage
> See [examples](example/).
### Methods
> Arguments within [ ] are optional, '|' indicates multiple type for an argument.
```javascript
/*
* Compare 2 versions with a condition.
* A version could be also specified through an Array like: [ 1, 0, 0 ].
* Following conditions are supported: '=', '<', '>', '<=', '>=', '<>'
*
* NOTE: it is compliant with all precedence rules specified in the
* "Semver 2.0" specification.
*/
Hoar#compare( String version1 | Array semver1, String version2 | Array semver2, String condition ) : Boolean/*
* Some #compare shortcuts for '=', '<', '>', '<=', '>=', '<>'
*/
Hoar#eq( String v1 | Array semver1, String v2 | Array semver2 ) : BooleanHoar#lt( String v1 | Array semver1, String v2 | Array semver2 ) : Boolean
Hoar#gt( String v1 | Array semver1, String v2 | Array semver2 ) : Boolean
Hoar#lte( String v1 | Array semver1, String v2 | Array semver2 ) : Boolean
Hoar#gte( String v1 | Array semver1, String v2 | Array semver2 ) : Boolean
Hoar#neq( String v1 | Array semver1, String v2 | Array semver2 ) : Boolean
/*
* Check if a version, or a list of versions, is/are between a range.
* The range is specified as a 2-element Array; elements respectively
* represent the lower and the higher bounds for a version range.
*
* NOTE: for default, strict ('<','>') operators are used for range
* comparisons, optionally you can use the 'nostrict' option:
*
* - 0, for range[ 0 ] < version < range[ 1 ]
* - 1, for range[ 0 ] <= version < range[ 1 ]
* - 2, for range[ 0 ] < version <= range[ 1 ]
* - 3, for range[ 0 ] <= version <= range[ 1 ]
*/
Hoar#range( String version | Array versions, Array range [, Number nostrict [, Boolean debug ] ] ) : Boolean/*
* Parse a version string, optionally specifying an array for result,
* and/or a filter function to be applied to every identifier.
* It splits the string into a nested Array containing all elements
* parsed.
*
* NOTE: For default filter function gets the current string parsed and
* removes all non alpha-numeric chars, then convert a string representation
* of a number to a Number.
*
* Example:
*
* A call to parse produces a list of 1 or 2 arrays, the first containing
* the normal version identifiers, the second containing pre-release
* identifiers, if any exist ( sub-string after '-' ).
* List of identifiers about build meta data ( sub-string after '+' ),
* will be pushed to the 'normal version' or 'pre-release version' array.
*
* parse( "1.0.1-pre.1.x+build001" );
*
* [ [ 1, 0, 1 ], [ 'pre', 1,'x', [ 'build001' ] ] ]
*
*/
Hoar#parse( String version [, Array result [, Function filter ] ] ) : Array/*
* printing infos about a #parse result: Hoar.print( Hoar.parse( '..' ) );
*/
Hoar#print( Array semver ) : undefined```
------------------------------------------------------------------------
### MIT License
> Copyright (c) 2013-present < Guglielmo Ferri : [email protected] >
> Permission is hereby granted, free of charge, to any person obtaining
> a copy of this software and associated documentation files (the
> 'Software'), to deal in the Software without restriction, including
> without limitation the rights to use, copy, modify, merge, publish,
> distribute, sublicense, and/or sell copies of the Software, and to
> permit persons to whom the Software is furnished to do so, subject to
> the following conditions:> __The above copyright notice and this permission notice shall be
> included in all copies or substantial portions of the Software.__> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.