Sha256: 38b1edd5a5f263edce9a912d3ee49c891cfbba084685b95232860969fb9e66e6

Contents?: true

Size: 1.39 KB

Versions: 12

Compression:

Stored size: 1.39 KB

Contents

const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

let loggedTypeFailures = {};

/**
 * Reset the history of which prop type warnings have been logged.
 */
export function resetPropWarnings() {
	loggedTypeFailures = {};
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * Adapted from https://github.com/facebook/prop-types/blob/master/checkPropTypes.js
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 */
export function checkPropTypes(
	typeSpecs,
	values,
	location,
	componentName,
	getStack
) {
	Object.keys(typeSpecs).forEach(typeSpecName => {
		let error;
		try {
			error = typeSpecs[typeSpecName](
				values,
				typeSpecName,
				componentName,
				location,
				null,
				ReactPropTypesSecret
			);
		} catch (e) {
			error = e;
		}
		if (error && !(error.message in loggedTypeFailures)) {
			loggedTypeFailures[error.message] = true;
			console.error(
				`Failed ${location} type: ${error.message}${(getStack &&
					`\n${getStack()}`) ||
					''}`
			);
		}
	});
}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
isomorfeus-preact-10.6.14 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.13 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.12 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.11 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.10 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.9 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.8 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.7 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.6 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.5 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.4 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.3 node_modules/preact/debug/src/check-props.js