Skip to content

mrozio13pl/semiff

Repository files navigation

semiff npm

A tiny (740B) utility to get the type difference between two semver versions.
Similar to semver#diff function.

Features

  • No dependencies.
  • Extremely lightweight - 740 bytes bundled, ~5 kB publish size.
  • Up to 6x faster than the semver package.
  • Built-in Typescript definitions.
  • ESM and CJS exports.

Install

npm i semiff

Usage

import semiff from 'semiff';

semiff('1.0.0', '2.0.0'); // major
semiff('1.0.0', '1.1.0'); // minor
semiff('1.1.1', '1.1.2'); // patch
semiff('1.0.0-1', '1.0.1-1'); // prepatch
semiff('1.1.0-pre-1', '1.1.0-pre-2'); // prerelease
semiff('1.0.0', '1.0.0'); // undefined
semiff('2.0.0', '1.0.0'); // undefined

API

semiff(lowVer, highVer)

Compares both versions and returns the difference between them.
If lowVer is equal or higher than highVer, it will return undefined.
Otherwise, one of the following outcomes will be returned:

  • 'major'
  • 'premajor'
  • 'minor'
  • 'preminor'
  • 'patch'
  • 'prepatch'
  • 'prerelease'
  semver x 1,635,459 ops/sec ±1.09% (95 runs sampled)
  semver-diff x 696,929 ops/sec ±1.04% (96 runs sampled)
+ semiff x 4,594,155 ops/sec ±1.67% (85 runs sampled)

License

MIT 💖

About

A tiny (740B) utility to get the type difference between two semver versions.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published