.
This commit is contained in:
		
							
								
								
									
										117
									
								
								qwen/nodejs/node_modules/jest-validate/build/validate.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								qwen/nodejs/node_modules/jest-validate/build/validate.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,117 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
Object.defineProperty(exports, '__esModule', {
 | 
			
		||||
  value: true
 | 
			
		||||
});
 | 
			
		||||
exports.default = void 0;
 | 
			
		||||
var _defaultConfig = _interopRequireDefault(require('./defaultConfig'));
 | 
			
		||||
var _utils = require('./utils');
 | 
			
		||||
function _interopRequireDefault(obj) {
 | 
			
		||||
  return obj && obj.__esModule ? obj : {default: obj};
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is licensed under the MIT license found in the
 | 
			
		||||
 * LICENSE file in the root directory of this source tree.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
let hasDeprecationWarnings = false;
 | 
			
		||||
const shouldSkipValidationForPath = (path, key, denylist) =>
 | 
			
		||||
  denylist ? denylist.includes([...path, key].join('.')) : false;
 | 
			
		||||
const _validate = (config, exampleConfig, options, path = []) => {
 | 
			
		||||
  if (
 | 
			
		||||
    typeof config !== 'object' ||
 | 
			
		||||
    config == null ||
 | 
			
		||||
    typeof exampleConfig !== 'object' ||
 | 
			
		||||
    exampleConfig == null
 | 
			
		||||
  ) {
 | 
			
		||||
    return {
 | 
			
		||||
      hasDeprecationWarnings
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
  for (const key in config) {
 | 
			
		||||
    if (
 | 
			
		||||
      options.deprecatedConfig &&
 | 
			
		||||
      key in options.deprecatedConfig &&
 | 
			
		||||
      typeof options.deprecate === 'function'
 | 
			
		||||
    ) {
 | 
			
		||||
      const isDeprecatedKey = options.deprecate(
 | 
			
		||||
        config,
 | 
			
		||||
        key,
 | 
			
		||||
        options.deprecatedConfig,
 | 
			
		||||
        options
 | 
			
		||||
      );
 | 
			
		||||
      hasDeprecationWarnings = hasDeprecationWarnings || isDeprecatedKey;
 | 
			
		||||
    } else if (allowsMultipleTypes(key)) {
 | 
			
		||||
      const value = config[key];
 | 
			
		||||
      if (
 | 
			
		||||
        typeof options.condition === 'function' &&
 | 
			
		||||
        typeof options.error === 'function'
 | 
			
		||||
      ) {
 | 
			
		||||
        if (key === 'maxWorkers' && !isOfTypeStringOrNumber(value)) {
 | 
			
		||||
          throw new _utils.ValidationError(
 | 
			
		||||
            'Validation Error',
 | 
			
		||||
            `${key} has to be of type string or number`,
 | 
			
		||||
            'maxWorkers=50% or\nmaxWorkers=3'
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    } else if (Object.hasOwnProperty.call(exampleConfig, key)) {
 | 
			
		||||
      if (
 | 
			
		||||
        typeof options.condition === 'function' &&
 | 
			
		||||
        typeof options.error === 'function' &&
 | 
			
		||||
        !options.condition(config[key], exampleConfig[key])
 | 
			
		||||
      ) {
 | 
			
		||||
        options.error(key, config[key], exampleConfig[key], options, path);
 | 
			
		||||
      }
 | 
			
		||||
    } else if (
 | 
			
		||||
      shouldSkipValidationForPath(path, key, options.recursiveDenylist)
 | 
			
		||||
    ) {
 | 
			
		||||
      // skip validating unknown options inside blacklisted paths
 | 
			
		||||
    } else {
 | 
			
		||||
      options.unknown &&
 | 
			
		||||
        options.unknown(config, exampleConfig, key, options, path);
 | 
			
		||||
    }
 | 
			
		||||
    if (
 | 
			
		||||
      options.recursive &&
 | 
			
		||||
      !Array.isArray(exampleConfig[key]) &&
 | 
			
		||||
      options.recursiveDenylist &&
 | 
			
		||||
      !shouldSkipValidationForPath(path, key, options.recursiveDenylist)
 | 
			
		||||
    ) {
 | 
			
		||||
      _validate(config[key], exampleConfig[key], options, [...path, key]);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return {
 | 
			
		||||
    hasDeprecationWarnings
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
const allowsMultipleTypes = key => key === 'maxWorkers';
 | 
			
		||||
const isOfTypeStringOrNumber = value =>
 | 
			
		||||
  typeof value === 'number' || typeof value === 'string';
 | 
			
		||||
const validate = (config, options) => {
 | 
			
		||||
  hasDeprecationWarnings = false;
 | 
			
		||||
 | 
			
		||||
  // Preserve default denylist entries even with user-supplied denylist
 | 
			
		||||
  const combinedDenylist = [
 | 
			
		||||
    ...(_defaultConfig.default.recursiveDenylist || []),
 | 
			
		||||
    ...(options.recursiveDenylist || [])
 | 
			
		||||
  ];
 | 
			
		||||
  const defaultedOptions = Object.assign({
 | 
			
		||||
    ..._defaultConfig.default,
 | 
			
		||||
    ...options,
 | 
			
		||||
    recursiveDenylist: combinedDenylist,
 | 
			
		||||
    title: options.title || _defaultConfig.default.title
 | 
			
		||||
  });
 | 
			
		||||
  const {hasDeprecationWarnings: hdw} = _validate(
 | 
			
		||||
    config,
 | 
			
		||||
    options.exampleConfig,
 | 
			
		||||
    defaultedOptions
 | 
			
		||||
  );
 | 
			
		||||
  return {
 | 
			
		||||
    hasDeprecationWarnings: hdw,
 | 
			
		||||
    isValid: true
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
var _default = validate;
 | 
			
		||||
exports.default = _default;
 | 
			
		||||
		Reference in New Issue
	
	Block a user