Jump To …

index.js demo

import PropTypes from 'prop-types';

export * from './resource';
export * from './resourceCRUD';
export * from './resourceAction';
export * from './resourceDecorator';
export * from './resourceModel';

export function shallowCopy(obj, extra){
  const newObj = {};
  for(let key in obj){
    newObj[key] = obj[key];
  }
  for(let key in extra){
    newObj[key] = extra[key];
  }
  return newObj;
}

export function extractCopy(obj, extract, extra){
  const newObj = {};
  if(Array.isArray(extract)){
    extract.forEach(key => {
      newObj[key] = obj[key];
    });
  }else{
    for(let key in extract){
      if(extract[key]){
        newObj[key] = obj[key] && obj[key].isRequired;
      }else{
        newObj[key] = obj[key];
      }
    }
  }
  for(let key in extra){
    newObj[key] = extra[key];
  }
  return newObj;
}


export function validateParameters(propTypes, value){
  const newPropTypes = {};
  for(let key in propTypes){
    if(typeof propTypes[key] === 'function'){
      newPropTypes[key] = propTypes[key];
    }else{
      newPropTypes[key] = propTypes[key].type;
    }
  }
  return PropTypes.shape(newPropTypes).isRequired({parameters: value}, 'parameters', 'action');
}