All files / lib/internal options.js

100% Statements 61/61
100% Branches 12/12
100% Functions 6/6
100% Lines 61/61

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62135x 135x 135x 135x 135x 135x 135x 135x 135x 135x 135x 135x 135x 278909x 278909x 5372x 5372x 278909x 278909x 135x 15x 15x 15x 15x 15x 15x 135x 278894x 278894x 278894x 10744x 10744x 10744x 278894x 278894x 135x 1411x 1411x 1411x 1411x 3x 3x 3x 3x 3x 3x 3x 1411x 1411x 135x 135x 135x 15x 135x 135x 15x 135x 135x 135x 135x 135x  
'use strict';
 
const { getOptions, shouldNotRegisterESMLoader } = internalBinding('options');
 
let warnOnAllowUnauthorized = true;
 
let optionsMap;
let aliasesMap;
 
// getOptions() would serialize the option values from C++ land.
// It would error if the values are queried before bootstrap is
// complete so that we don't accidentally include runtime-dependent
// states into a runtime-independent snapshot.
function getOptionsFromBinding() {
  if (!optionsMap) {
    ({ options: optionsMap } = getOptions());
  }
  return optionsMap;
}
 
function getAliasesFromBinding() {
  if (!aliasesMap) {
    ({ aliases: aliasesMap } = getOptions());
  }
  return aliasesMap;
}
 
function getOptionValue(optionName) {
  const options = getOptionsFromBinding();
  if (optionName.startsWith('--no-')) {
    const option = options.get('--' + optionName.slice(5));
    return option && !option.value;
  }
  return options.get(optionName)?.value;
}
 
function getAllowUnauthorized() {
  const allowUnauthorized = process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0';
 
  if (allowUnauthorized && warnOnAllowUnauthorized) {
    warnOnAllowUnauthorized = false;
    process.emitWarning(
      'Setting the NODE_TLS_REJECT_UNAUTHORIZED ' +
      'environment variable to \'0\' makes TLS connections ' +
      'and HTTPS requests insecure by disabling ' +
      'certificate verification.');
  }
  return allowUnauthorized;
}
 
module.exports = {
  get options() {
    return getOptionsFromBinding();
  },
  get aliases() {
    return getAliasesFromBinding();
  },
  getOptionValue,
  getAllowUnauthorized,
  shouldNotRegisterESMLoader
};