File Explorer

/proc/self/root/proc/1/task/1/root/node24/lib/node_modules/npm/node_modules/abbrev/lib

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 /.

index.js1.3 KB · 54 lines
module.exports = abbrev function abbrev (...args) {  let list = args  if (args.length === 1 && (Array.isArray(args[0]) || typeof args[0] === 'string')) {    list = [].concat(args[0])  }   for (let i = 0, l = list.length; i < l; i++) {    list[i] = typeof list[i] === 'string' ? list[i] : String(list[i])  }   // sort them lexicographically, so that they're next to their nearest kin  list = list.sort(lexSort)   // walk through each, seeing how much it has in common with the next and previous  const abbrevs = {}  let prev = ''  for (let ii = 0, ll = list.length; ii < ll; ii++) {    const current = list[ii]    const next = list[ii + 1] || ''    let nextMatches = true    let prevMatches = true    if (current === next) {      continue    }    let j = 0    const cl = current.length    for (; j < cl; j++) {      const curChar = current.charAt(j)      nextMatches = nextMatches && curChar === next.charAt(j)      prevMatches = prevMatches && curChar === prev.charAt(j)      if (!nextMatches && !prevMatches) {        j++        break      }    }    prev = current    if (j === cl) {      abbrevs[current] = current      continue    }    for (let a = current.slice(0, j); j <= cl; j++) {      abbrevs[a] = current      a += current.charAt(j)    }  }  return abbrevs} function lexSort (a, b) {  return a === b ? 0 : a > b ? 1 : -1}