File Explorer

/proc/self/root/var/lang/lib/node_modules/npm/node_modules/@npmcli/config/lib/definitions

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.js2.7 KB · 89 lines
const definitions = require('./definitions.js') // use the defined flattening function, and copy over any scoped// registries and registry-specific "nerfdart" configs verbatim//// TODO: make these getters so that we only have to make dirty// the thing that changed, and then flatten the fields that// could have changed when a config.set is called.//// TODO: move nerfdart auth stuff into a nested object that// is only passed along to paths that end up calling npm-registry-fetch.const flatten = (obj, flat = {}) => {  for (const [key, val] of Object.entries(obj)) {    const def = definitions[key]    if (def && def.flatten) {      def.flatten(key, obj, flat)    } else if (/@.*:registry$/i.test(key) || /^\/\//.test(key)) {      flat[key] = val    }  }  return flat} const definitionProps = Object.entries(definitions)  .reduce((acc, [key, { short = [], default: d }]) => {  // can be either an array or string    for (const s of [].concat(short)) {      acc.shorthands[s] = [`--${key}`]    }    acc.defaults[key] = d    return acc  }, { shorthands: {}, defaults: {} }) // aliases where they get expanded into a completely different thing// these are NOT supported in the environment or npmrc files, only// expanded on the CLI.// TODO: when we switch off of nopt, use an arg parser that supports// more reasonable aliasing and short opts right in the definitions set.const shorthands = {  'enjoy-by': ['--before'],  d: ['--loglevel', 'info'],  dd: ['--loglevel', 'verbose'],  ddd: ['--loglevel', 'silly'],  quiet: ['--loglevel', 'warn'],  q: ['--loglevel', 'warn'],  s: ['--loglevel', 'silent'],  silent: ['--loglevel', 'silent'],  verbose: ['--loglevel', 'verbose'],  desc: ['--description'],  help: ['--usage'],  local: ['--no-global'],  n: ['--no-yes'],  no: ['--no-yes'],  porcelain: ['--parseable'],  readonly: ['--read-only'],  reg: ['--registry'],  iwr: ['--include-workspace-root'],  ws: ['--workspaces'],  ...definitionProps.shorthands,} // These are the configs that we can nerf-dart. Only _auth even has a config definition so we have to explicitly validate them here.// This is used to validate during "npm config set" and to not warn on loading unknown configs when we see these.const nerfDarts = [  '_auth', // Has a config  '_authToken', // Does not have a config  '_password', // Does not have a config  'certfile', // Does not have a config  'email', // Does not have a config  'keyfile', // Does not have a config  'username', // Does not have a config] const proxyEnv = [  'http_proxy',  'https_proxy',  'proxy',  'no_proxy',] module.exports = {  defaults: definitionProps.defaults,  definitions,  flatten,  nerfDarts,  proxyEnv,  shorthands,}