UNPKG

redux-resource-prop-types

Version:
67 lines (54 loc) 2.44 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('prop-types'), require('redux-resource')) : typeof define === 'function' && define.amd ? define(['exports', 'prop-types', 'redux-resource'], factory) : (factory((global.ReduxResourcePropTypes = {}),global.PropTypes,global.ReduxResource)); }(this, (function (exports,PropTypes,reduxResource) { 'use strict'; PropTypes = PropTypes && PropTypes.hasOwnProperty('default') ? PropTypes['default'] : PropTypes; 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; }; // 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([reduxResource.requestStatuses.IDLE, reduxResource.requestStatuses.PENDING, reduxResource.requestStatuses.FAILED, reduxResource.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 }); exports.idPropType = idPropType; exports.requestStatusPropType = requestStatusPropType; exports.resourcePropType = resourcePropType; exports.requestPropType = requestPropType; exports.statusPropType = statusPropType; Object.defineProperty(exports, '__esModule', { value: true }); })));