@attistech/semver-compare
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

Semver Compare

Validate and compare two highly opinionated semantic version strings (aka not technically Semantic Versioning).

For those of you looking for an actual semantic versioning project, I recommend a quick google search to find some other fine projects that will suit your needs. This project is primarily suited to meet the needs of attis tech.

Overview

This is a highly simplified format for versioning that does not allow for anything other than a simple 1.2.3 format with optional -beta.[number] or -alpha.[number] suffixes.

See the regex in use: https://regex101.com/r/EQl8V2/1

Examples:

Version String Valid
1.2.3 valid
v1.2.3 valid
v1.2.3+something invalid
1.2.3-beta invalid
1.2.3-beta.1 valid
1.2.3-alpha invalid
1.2.3-alpha.1 valid

See tests (src/__tests__/isValidSemver.test.ts) for more examples.

Comparison

While obviously major > minor > patch, it is also true that main > beta > alpha.

v1 comparison v2
1.2.3 > 1.2.2
1.2.3 > 1.1.2
1.2.3-beta.1 > 1.2.3-alpha.1
1.2.3-alpha.1 > 1.2.2
1.2.3 > 1.2.3-alpha.1

Usage

import { isValidSemver, parseSemver, compareSemver, VersionType } from '@attistech/semver-compare'; 

...

if(isValidSemver('1.2.3-beta.1')) { 
    // The version is valid
    ...
}

if(parseSemver('1.2.3-beta.1')[3] === VersionType.Beta) { 
    // The version is beta
    ...
}

if(compareSemver('1.2.3', '1.2.4') === -1) { 
    // The first version is less than the second version. 
    ...
}

Development

# Be sure to build before publishing 
npm run build 

# Bump the version 
npm version 

# Publish the package 
npm publish

Testing

Test like the best. Test with Jest

cd project/root
jest

License

Semver-Compare is MIT Licensed.

Readme

Keywords

none

Package Sidebar

Install

npm i @attistech/semver-compare

Weekly Downloads

0

Version

1.0.6

License

MIT

Unpacked Size

7.63 kB

Total Files

5

Last publish

Collaborators

  • attistech