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 62138x 138x 138x 138x 138x 138x 138x 138x 138x 138x 138x 138x 138x 278221x 278221x 5358x 5358x 278221x 278221x 138x 15x 15x 15x 15x 15x 15x 138x 278206x 278206x 278206x 10716x 10716x 10716x 278206x 278206x 138x 1409x 1409x 1409x 1409x 3x 3x 3x 3x 3x 3x 3x 1409x 1409x 138x 138x 138x 15x 138x 138x 15x 138x 138x 138x 138x 138x  
'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
};