File Explorer

/var/lang/lib/node_modules/npm/lib/utils

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

0 dirs
35 files
npm-usage.js2.0 KB · 75 lines
const { commands } = require('./cmd-list') const COL_MAX = 60const COL_MIN = 24const COL_GUTTER = 16const INDENT = 4 const indent = (repeat = INDENT) => ' '.repeat(repeat)const indentNewline = (repeat) => `\n${indent(repeat)}` module.exports = (npm) => {  const browser = npm.config.get('viewer') === 'browser' ? ' (in a browser)' : ''  const allCommands = npm.config.get('long') ? cmdUsages(npm.constructor) : cmdNames()   return `npm <command> Usage: npm install        install all the dependencies in your projectnpm install <foo>  add the <foo> dependency to your projectnpm test           run this project's testsnpm run <foo>      run the script named <foo>npm <command> -h   quick help on <command>npm -l             display usage info for all commandsnpm help <term>    search for help on <term>${browser}npm help npm       more involved overview${browser} All commands:${allCommands} Specify configs in the ini-formatted file:${indent() + npm.config.get('userconfig')}or on the command line via: npm <command> --key=value More configuration info: npm help configConfiguration fields: npm help 7 config npm@${npm.version} ${npm.npmRoot}`} const cmdNames = () => {  const out = ['']   const line = !process.stdout.columns ? COL_MAX    : Math.min(COL_MAX, Math.max(process.stdout.columns - COL_GUTTER, COL_MIN))   let l = 0  for (const c of commands) {    if (out[l].length + c.length + 2 < line) {      out[l] += ', ' + c    } else {      out[l++] += ','      out[l] = c    }  }   return indentNewline() + out.join(indentNewline()).slice(2)} const cmdUsages = (Npm) => {  // return a string of <command>: <usage>  let maxLen = 0  const set = []  for (const c of commands) {    set.push([c, Npm.cmd(c).getUsage(null, false).split('\n')])    maxLen = Math.max(maxLen, c.length)  }   return set.map(([name, usageLines]) => {    const gutter = indent(maxLen - name.length + 1)    const usage = usageLines.join(indentNewline(INDENT + maxLen + 1))    return indentNewline() + name + gutter + usage  }).join('\n')}