Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

semver-range-intersect

sounisi501144.2kMIT0.3.1TypeScript support: included

Get the intersection of multiple semver ranges.

intersect, semver, version

readme

semver-range-intersect

npm package GitHub License Type Definitions: TypeScript Build Status Maintainability Status

Get the intersection of multiple semver ranges.

Install

npm install semver-range-intersect

Usage

const { intersect } = require('semver-range-intersect');

// equals to: '^4.1.0'
intersect('^4.0.0', '^4.1.0') === '>=4.1.0 <5.0.0'

// equals to: 1.1.0 - 1.4.0
intersect('1.1.0 - 1.2.3 || 1.2.0 - 1.4.0') === '>=1.1.0 <=1.4.0'

intersect('8.2.6 - 8.x.x', '<=8.6.9') === '>=8.2.6 <=8.6.9'

intersect('^6.0.0', '6.7.9') === '6.7.9'

// equals to: ^8.15.0 || ^10.13.0 || >=11.10.1
intersect('^8.15.0 || >=10.0.0', '^8.10.0 || ^10.13.0 || >=11.10.1') === '>=8.15.0 <9.0.0 || >=10.13.0 <11.0.0 || >=11.10.1'

intersect('x.x.x') === '*'

// null for invalid version
intersect('a.b.c') === null

// null for version range not crossing
intersect('^2.0.0', '^5.0.0') === null
intersect('8.2.6 - 8.x.x', '>=9.0.1') === null

Tests

To run the test suite, first install the dependencies, then run npm test:

npm install
npm test

Contributing

see CONTRIBUTING.md

changelog

Change Log

0.3.1 (2019-07-20 UTC / 2019-07-21 JST)

Documentation

  • #39 - Add Type Definitions Badge

Supported Node version

8.12.0 - 8.x || 10.0.0 - x.x -> 8.3.0 - x.x

  • #40 - Downgrade supported Node version

Updated Dependencies

devDependencies

  • eslint-plugin-import
    • #38 - 2.18.0 -> 2.18.2
  • husky
    • #37 - 3.0.0 -> 3.0.1

0.3.0 (2019-07-15 UTC / 2019-07-16 JST)

Bug Fixes

  • #32 - Ignore non-matching ranges delimited by ||
  • #35 - Fixed prerelease version range processing logic

Updated Dependencies

devDependencies

  • @typescript-eslint/eslint-plugin
    • #33 - 1.11.0 -> 1.12.0
  • @typescript-eslint/parser
    • #33 - 1.11.0 -> 1.12.0
  • lint-staged
    • #24 - 9.1.0 -> 9.2.0

Added Dependencies

devDependencies

Removed Dependencies

devDependencies

  • #31 - @types/node@12.6.2

Tests

  • #28 - Check peerDependencies
  • #34 - Verify test expected values

Others

  • #31 - Replace build script script/git-add-pkg-version-tag.ts with package-version-git-tag package.

0.2.0 (2019-07-10)

Bug Fixes

  • #13 - intersect() returns '*' instead of empty string
  • #14 - intersect() returns trimmed version range value
  • #15 - intersect() derive an appropriate intersection from the range that any version satisfies
  • #19 - intersect() normalize overlapping version ranges into one version range
  • #21 - intersect() returns null for a single non-intersecting version range

Updated Dependencies

devDependencies

  • @types/node
    • #20 - 12.6.1 -> 12.6.2
  • typescript
    • #10 - 3.5.2 -> 3.5.3

Added Dependencies

devDependencies

Tests

  • #22 - Test enhancements

0.1.0 (2019-07-08 UTC / 2019-07-09 JST)