File Explorer

/proc/4/root/var/lang/lib/node_modules/npm/node_modules/@npmcli/agent/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 /.

options.js2.5 KB · 91 lines
'use strict' const dns = require('./dns') const normalizeOptions = (opts) => {  const family = parseInt(opts.family ?? '0', 10)  const keepAlive = opts.keepAlive ?? true   const normalized = {    // nodejs http agent options. these are all the defaults    // but kept here to increase the likelihood of cache hits    // https://nodejs.org/api/http.html#new-agentoptions    keepAliveMsecs: keepAlive ? 1000 : undefined,    maxSockets: opts.maxSockets ?? 15,    maxTotalSockets: Infinity,    maxFreeSockets: keepAlive ? 256 : undefined,    scheduling: 'fifo',    // then spread the rest of the options    ...opts,    // we already set these to their defaults that we want    family,    keepAlive,    // our custom timeout options    timeouts: {      // the standard timeout option is mapped to our idle timeout      // and then deleted below      idle: opts.timeout ?? 0,      connection: 0,      response: 0,      transfer: 0,      ...opts.timeouts,    },    // get the dns options that go at the top level of socket connection    ...dns.getOptions({ family, ...opts.dns }),  }   // remove timeout since we already used it to set our own idle timeout  delete normalized.timeout   // since opts is often passed when initiating requests, it may contain  // headers, which should not be saved in an agent  delete normalized.headers   return normalized} const createKey = (obj) => {  let key = ''  const sorted = Object.entries(obj).sort((a, b) => a[0] - b[0])  for (let [k, v] of sorted) {    if (v == null) {      v = 'null'    } else if (v instanceof URL) {      v = v.toString()    } else if (typeof v === 'object') {      v = createKey(v)    }    key += `${k}:${v}:`  }  return key} const cacheOptions = ({ secureEndpoint, ...options }) => createKey({  secureEndpoint: !!secureEndpoint,  // socket connect options  family: options.family,  hints: options.hints,  localAddress: options.localAddress,  // tls specific connect options  strictSsl: secureEndpoint ? !!options.rejectUnauthorized : false,  ca: secureEndpoint ? options.ca : null,  cert: secureEndpoint ? options.cert : null,  key: secureEndpoint ? options.key : null,  // http agent options  keepAlive: options.keepAlive,  keepAliveMsecs: options.keepAliveMsecs,  maxSockets: options.maxSockets,  maxTotalSockets: options.maxTotalSockets,  maxFreeSockets: options.maxFreeSockets,  scheduling: options.scheduling,  // timeout options  timeouts: options.timeouts,  // proxy  proxy: options.proxy,}) module.exports = {  normalizeOptions,  cacheOptions,}