Sha256: 389ff1c916e4aa1e560cf4b18081f271fba4c4b89da794dd441975a7d60926e8

Contents?: true

Size: 1.34 KB

Versions: 69

Compression:

Stored size: 1.34 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

69 entries across 69 versions & 1 rubygems

Version Path
isomorfeus-preact-10.6.50 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.49 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.48 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.47 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.46 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.45 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.44 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.43 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.42 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.41 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.40 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.39 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.38 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.37 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.36 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.35 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.34 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.33 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.32 node_modules/preact/debug/src/check-props.js
isomorfeus-preact-10.6.31 node_modules/preact/debug/src/check-props.js