@attistech/semver-compare v1.0.6
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 publishTesting
Test like the best. Test with Jest
cd project/root
jestLicense
Semver-Compare is MIT Licensed.