1. import PropTypes from 'prop-types';
    
  2. import semver from 'semver';
    
  3. 
    
  4. export function semverString(props, propName, componentName) {
    
  5.   let version = props[propName];
    
  6. 
    
  7.   let error = PropTypes.string(...arguments);
    
  8.   if (!error && version != null && !semver.valid(version))
    
  9.     error = new Error(
    
  10.       `\`${propName}\` should be a valid "semantic version" matching ` +
    
  11.         'an existing React version'
    
  12.     );
    
  13. 
    
  14.   return error || null;
    
  15. }