MCPcopy Create free account
hub / github.com/microsoft/SandDance / createPropsPrototypeAndTypes

Function createPropsPrototypeAndTypes

docs/tests/v2/es6/js/sanddance.js:42928–42958  ·  view source on GitHub ↗
(componentClass)

Source from the content-addressed store, hash-verified

42926
42927
42928function createPropsPrototypeAndTypes(componentClass) {
42929 var parent = componentClass.prototype;
42930
42931 if (!parent) {
42932 return {
42933 defaultProps: {}
42934 };
42935 }
42936
42937 var parentClass = Object.getPrototypeOf(componentClass);
42938 var parentPropDefs = parent && getPropsPrototypeAndTypes(parentClass) || null; // Parse propTypes from Component.defaultProps
42939
42940 var componentDefaultProps = getOwnProperty(componentClass, 'defaultProps') || {};
42941 var componentPropDefs = (0, _propTypes.parsePropTypes)(componentDefaultProps); // Create a merged type object
42942
42943 var propTypes = Object.assign({}, parentPropDefs && parentPropDefs.propTypes, componentPropDefs.propTypes); // Create any necessary property descriptors and create the default prop object
42944 // Assign merged default props
42945
42946 var defaultProps = createPropsPrototype(componentPropDefs.defaultProps, parentPropDefs && parentPropDefs.defaultProps, propTypes, componentClass); // Create a map for prop whose default value is a callback
42947
42948 var deprecatedProps = Object.assign({}, parentPropDefs && parentPropDefs.deprecatedProps, componentPropDefs.deprecatedProps); // Store the precalculated props
42949
42950 componentClass._mergedDefaultProps = defaultProps;
42951 componentClass._propTypes = propTypes;
42952 componentClass._deprecatedProps = deprecatedProps;
42953 return {
42954 propTypes: propTypes,
42955 defaultProps: defaultProps,
42956 deprecatedProps: deprecatedProps
42957 };
42958} // Builds a pre-merged default props object that component props can inherit from
42959
42960
42961function createPropsPrototype(props, parentProps, propTypes, componentClass) {

Callers 1

Calls 3

getOwnPropertyFunction · 0.70
createPropsPrototypeFunction · 0.70

Tested by

no test coverage detected