higher-order-reducers
Version:
A library of simple everyday reducer utility functions
33 lines (25 loc) • 857 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _warn = require('./warn');
var _warn2 = _interopRequireDefault(_warn);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var isReducer = function isReducer(reducer) {
return typeof reducer === 'function';
};
var handlesUndefined = function handlesUndefined(reducer) {
return reducer(undefined, { type: '@@PROBE' }) !== undefined;
};
var isSane = function isSane(reducer, context) {
if (!isReducer(reducer)) {
(0, _warn2.default)(context + '. Supplied reducer is not a function');
return false;
}
if (!handlesUndefined(reducer)) {
(0, _warn2.default)(context + '. Supplied reducer returned returned "undefined" for state undefined');
return false;
}
return true;
};
exports.default = isSane;