Sha256: 58f8f458be4892dc7b15daf21e2db1e7df07cd1470be9825b16faddae1f44f61

Contents?: true

Size: 1.26 KB

Versions: 42

Compression:

Stored size: 1.26 KB

Contents

// given a set of versions and a range, create a "simplified" range
// that includes the same versions that the original range does
// If the original range is shorter than the simplified one, return that.
const satisfies = require('../functions/satisfies.js')
const compare = require('../functions/compare.js')
module.exports = (versions, range, options) => {
  const set = []
  let min = null
  let prev = null
  const v = versions.sort((a, b) => compare(a, b, options))
  for (const version of v) {
    const included = satisfies(version, range, options)
    if (included) {
      prev = version
      if (!min)
        min = version
    } else {
      if (prev) {
        set.push([min, prev])
      }
      prev = null
      min = null
    }
  }
  if (min)
    set.push([min, null])

  const ranges = []
  for (const [min, max] of set) {
    if (min === max)
      ranges.push(min)
    else if (!max && min === v[0])
      ranges.push('*')
    else if (!max)
      ranges.push(`>=${min}`)
    else if (min === v[0])
      ranges.push(`<=${max}`)
    else
      ranges.push(`${min} - ${max}`)
  }
  const simplified = ranges.join(' || ')
  const original = typeof range.raw === 'string' ? range.raw : String(range)
  return simplified.length < original.length ? simplified : range
}

Version data entries

42 entries across 35 versions & 4 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/css-loader/node_modules/semver/ranges/simplify.js
decidim-0.27.1 packages/webpacker/node_modules/semver/ranges/simplify.js
decidim-0.26.4 packages/webpacker/node_modules/semver/ranges/simplify.js
decidim-0.27.0 packages/webpacker/node_modules/semver/ranges/simplify.js
decidim-0.26.3 packages/webpacker/node_modules/semver/ranges/simplify.js
decidim-0.27.0.rc2 packages/webpacker/node_modules/semver/ranges/simplify.js
decidim-0.27.0.rc1 packages/webpacker/node_modules/semver/ranges/simplify.js
appmap-0.72.2 ./node_modules/semver/ranges/simplify.js
appmap-0.72.1 ./node_modules/semver/ranges/simplify.js
appmap-0.72.0 ./node_modules/semver/ranges/simplify.js
appmap-0.71.0 ./node_modules/semver/ranges/simplify.js
disco_app-0.16.1 test/dummy/node_modules/@npmcli/fs/node_modules/semver/ranges/simplify.js
disco_app-0.16.1 test/dummy/node_modules/sass-loader/node_modules/semver/ranges/simplify.js
appmap-0.70.2 ./node_modules/semver/ranges/simplify.js
appmap-0.70.1 ./node_modules/semver/ranges/simplify.js
appmap-0.70.0 ./node_modules/semver/ranges/simplify.js
appmap-0.69.0 ./node_modules/semver/ranges/simplify.js
appmap-0.68.2 ./node_modules/semver/ranges/simplify.js
appmap-0.68.1 ./node_modules/semver/ranges/simplify.js
disco_app-0.15.2 test/dummy/node_modules/@npmcli/fs/node_modules/semver/ranges/simplify.js