genji-core
Version:
The core lightweight library for genji, based on redux and redux-saga.
29 lines (21 loc) • 1.05 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = prefixedDispatch;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
var _invariant = _interopRequireDefault(require("invariant"));
var _warning = _interopRequireDefault(require("warning"));
var _constants = require("./constants");
var _prefixType = _interopRequireDefault(require("./prefixType"));
function prefixedDispatch(dispatch, model) {
return function (action) {
var type = action.type;
(0, _invariant.default)(type, 'dispatch: action should be a plain Object with type');
(0, _warning.default)(type.indexOf("".concat(model.namespace).concat(_constants.NAMESPACE_SEP)) !== 0, "dispatch: ".concat(type, " should not be prefixed with namespace ").concat(model.namespace));
return dispatch((0, _objectSpread2.default)({}, action, {
type: (0, _prefixType.default)(type, model)
}));
};
}