UNPKG

redux-resource-prop-types

Version:
41 lines (34 loc) 1.72 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; import PropTypes from 'prop-types'; import { requestStatuses } from 'redux-resource'; // Verifies a resource ID. Useful as a "building block" for // more advanced prop types. var idPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.number]); // Verifies a request status. useful as a "building block" for // more advanced prop types. var requestStatusPropType = PropTypes.oneOf([requestStatuses.IDLE, requestStatuses.PENDING, requestStatuses.FAILED, requestStatuses.SUCCEEDED]); // Similar to `.shape()`, except that it enforces an ID. var resourcePropType = function resourcePropType(props) { return PropTypes.shape(_extends({}, props, { id: idPropType.isRequired })); }; // Similar to `.shape()`, except that it enforces proper request // statuses, as well as an ID list var requestPropType = function requestPropType(props) { return PropTypes.shape(_extends({}, props, { resourceType: PropTypes.string.isRequired, requestKey: PropTypes.string.isRequired, requestName: PropTypes.string, ids: PropTypes.arrayOf(idPropType).isRequired, status: requestStatusPropType.isRequired })); }; // The return value from `getStatus`. var statusPropType = PropTypes.shape({ idle: PropTypes.bool.isRequired, pending: PropTypes.bool.isRequired, failed: PropTypes.bool.isRequired, succeeded: PropTypes.bool.isRequired }); export { idPropType, requestStatusPropType, resourcePropType, requestPropType, statusPropType };