react-schema
Version:
Use react like PropTypes for generic object validation.
44 lines (36 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _PropTypes = require('../PropTypes');
var _PropTypes2 = _interopRequireDefault(_PropTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Attempts to locate (or infer) the PropType name from a checker.
*
* @param {Function} checker
* This could either be an instance of a chainable type checker (like
* oneOf and shape) or a primitive type checker (string or number).
*
* @return {String}
*/
var getTypeName = function getTypeName(checker) {
if (!checker) {
return undefined;
} else if (checker.$meta) {
return checker.$meta.type; // An introspectable checker.
}
var typeName = void 0;
// Maybe this is a primitive checker?
Object.keys(_PropTypes2.default).some(function (key) {
if (_PropTypes2.default[key] === checker || _PropTypes2.default[key] && _PropTypes2.default[key].isRequired === checker) {
typeName = key;
return true;
}
return undefined;
});
// Finish up.
return typeName;
};
exports.default = getTypeName;
//# sourceMappingURL=getTypeName.js.map