| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 'use strict';Object.defineProperty(exports, '__esModule', {  value: true});exports.DOCUMENTATION_NOTE = void 0;exports.default = validateCLIOptions;function _camelcase() {  const data = _interopRequireDefault(require('camelcase'));  _camelcase = function () {    return data;  };  return data;}function _chalk() {  const data = _interopRequireDefault(require('chalk'));  _chalk = function () {    return data;  };  return data;}var _defaultConfig = _interopRequireDefault(require('./defaultConfig'));var _deprecated = require('./deprecated');var _utils = require('./utils');function _interopRequireDefault(obj) {  return obj && obj.__esModule ? obj : {default: obj};}/** * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */const BULLET = _chalk().default.bold('\u25cf');const DOCUMENTATION_NOTE = `  ${_chalk().default.bold(  'CLI Options Documentation:')}  https://jestjs.io/docs/cli`;exports.DOCUMENTATION_NOTE = DOCUMENTATION_NOTE;const createCLIValidationError = (unrecognizedOptions, allowedOptions) => {  let title = `${BULLET} Unrecognized CLI Parameter`;  let message;  const comment =    `  ${_chalk().default.bold('CLI Options Documentation')}:\n` +    '  https://jestjs.io/docs/cli\n';  if (unrecognizedOptions.length === 1) {    const unrecognized = unrecognizedOptions[0];    const didYouMeanMessage =      unrecognized.length > 1        ? (0, _utils.createDidYouMeanMessage)(            unrecognized,            Array.from(allowedOptions)          )        : '';    message =      `  Unrecognized option ${_chalk().default.bold(        (0, _utils.format)(unrecognized)      )}.` + (didYouMeanMessage ? ` ${didYouMeanMessage}` : '');  } else {    title += 's';    message =      '  Following options were not recognized:\n' +      `  ${_chalk().default.bold((0, _utils.format)(unrecognizedOptions))}`;  }  return new _utils.ValidationError(title, message, comment);};const logDeprecatedOptions = (deprecatedOptions, deprecationEntries, argv) => {  deprecatedOptions.forEach(opt => {    (0, _deprecated.deprecationWarning)(argv, opt, deprecationEntries, {      ..._defaultConfig.default,      comment: DOCUMENTATION_NOTE    });  });};function validateCLIOptions(argv, options, rawArgv = []) {  const yargsSpecialOptions = ['$0', '_', 'help', 'h'];  const deprecationEntries = options.deprecationEntries || {};  const allowedOptions = Object.keys(options).reduce(    (acc, option) => acc.add(option).add(options[option].alias || option),    new Set(yargsSpecialOptions)  );  const unrecognizedOptions = Object.keys(argv).filter(    arg =>      !allowedOptions.has(        (0, _camelcase().default)(arg, {          locale: 'en-US'        })      ) &&      !allowedOptions.has(arg) &&      (!rawArgv.length || rawArgv.includes(arg)),    []  );  if (unrecognizedOptions.length) {    throw createCLIValidationError(unrecognizedOptions, allowedOptions);  }  const CLIDeprecations = Object.keys(deprecationEntries).reduce(    (acc, entry) => {      if (options[entry]) {        acc[entry] = deprecationEntries[entry];        const alias = options[entry].alias;        if (alias) {          acc[alias] = deprecationEntries[entry];        }      }      return acc;    },    {}  );  const deprecations = new Set(Object.keys(CLIDeprecations));  const deprecatedOptions = Object.keys(argv).filter(    arg => deprecations.has(arg) && argv[arg] != null  );  if (deprecatedOptions.length) {    logDeprecatedOptions(deprecatedOptions, CLIDeprecations, argv);  }  return true;}
 |