redux-resource-prop-types
Version:
prop-types for Redux Resource
67 lines (54 loc) • 2.44 kB
JavaScript
(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 });
})));