File Explorer

/proc/self/root/proc/1/task/1/cwd/node24/lib/node_modules/npm/node_modules/semver/ranges

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

simplify.js1.3 KB · 50 lines
'use strict' // 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 first = 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 (!first) {        first = version      }    } else {      if (prev) {        set.push([first, prev])      }      prev = null      first = null    }  }  if (first) {    set.push([first, 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}