initDefaultProps.js 626 B

1234567891011121314151617181920212223
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. const initDefaultProps = (types, defaultProps) => {
  3. const propTypes = _extends({}, types);
  4. Object.keys(defaultProps).forEach(k => {
  5. const prop = propTypes[k];
  6. if (prop) {
  7. if (prop.type || prop.default) {
  8. prop.default = defaultProps[k];
  9. } else if (prop.def) {
  10. prop.def(defaultProps[k]);
  11. } else {
  12. propTypes[k] = {
  13. type: prop,
  14. default: defaultProps[k]
  15. };
  16. }
  17. } else {
  18. throw new Error(`not have ${k} prop`);
  19. }
  20. });
  21. return propTypes;
  22. };
  23. export default initDefaultProps;