gambit
Version:
A hyper-thin library to help building API driven redux apps
90 lines (70 loc) • 3.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _createReducer = require('./createReducer');
var _createReducer2 = _interopRequireDefault(_createReducer);
var _immutable = require('immutable');
var _GeneralConstants = require('./GeneralConstants');
var _GeneralConstants2 = _interopRequireDefault(_GeneralConstants);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
var _ref11, _ref14, _ref17;
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
return (0, _createReducer2.default)({
lastAction: [null, (0, _defineProperty3.default)({}, _GeneralConstants2.default.ACTION_SUCCEEDED, function (_ref) {
var action = _ref.action;
return action;
})],
lastCalled: [new _immutable.Map({}), (0, _defineProperty3.default)({}, _GeneralConstants2.default.ACTION_CALLED, function (_ref3, prevState) {
var action = _ref3.action;
return prevState.set(action, Date.now());
})],
lastSucceeded: [new _immutable.Map({}), (0, _defineProperty3.default)({}, _GeneralConstants2.default.ACTION_SUCCEEDED, function (_ref5, prevState) {
var action = _ref5.action;
return prevState.set(action, Date.now());
})],
monitorValues: [new _immutable.Map({}), (0, _defineProperty3.default)({}, _GeneralConstants2.default.MONITORED_VALUE_CHANGED, function (_ref7, prevState) {
var id = _ref7.id;
var props = _ref7.props;
var state = _ref7.state;
return prevState.set(id, (0, _immutable.fromJS)({
props: props,
state: state
}));
})],
pending: [new _immutable.Map({}), (_ref11 = {}, (0, _defineProperty3.default)(_ref11, _GeneralConstants2.default.ACTION_CALLED, function (_ref9, prevState) {
var cycleId = _ref9.cycleId;
if (!cycleId) return prevState;
return prevState.set(cycleId, true);
}), (0, _defineProperty3.default)(_ref11, _GeneralConstants2.default.ACTION_SUCCEEDED + ' ' + _GeneralConstants2.default.ACTION_FAILED, function (_ref10, prevState) {
var cycleId = _ref10.cycleId;
if (!cycleId) return prevState;
return prevState.set(cycleId, false);
}), _ref11)],
failed: [new _immutable.Map({}), (_ref14 = {}, (0, _defineProperty3.default)(_ref14, _GeneralConstants2.default.ACTION_CALLED + ' ' + _GeneralConstants2.default.ACTION_SUCCEEDED, function (_ref12, prevState) {
var cycleId = _ref12.cycleId;
if (!cycleId) return prevState;
return prevState.set(cycleId, null);
}), (0, _defineProperty3.default)(_ref14, _GeneralConstants2.default.ACTION_FAILED, function (_ref13, prevState) {
var cycleId = _ref13.cycleId;
var rest = (0, _objectWithoutProperties3.default)(_ref13, ['cycleId']);
if (!cycleId) return prevState;
return prevState.set(cycleId, opts.errorParser ? opts.errorParser((0, _extends3.default)({ cycleId: cycleId }, rest)) : true);
}), _ref14)],
highlightedComponents: [new _immutable.Map({}), (_ref17 = {}, (0, _defineProperty3.default)(_ref17, _GeneralConstants2.default.HIGHLIGHT_COMPONENT, function (_ref15, state) {
var id = _ref15.id;
var color = _ref15.color;
return state.set(id, color);
}), (0, _defineProperty3.default)(_ref17, _GeneralConstants2.default.UNHIGHLIGHT_COMPONENT, function (_ref16, state) {
var id = _ref16.id;
return state.delete(id);
}), _ref17)]
}, (0, _extends3.default)({}, opts, { hearGeneral: true }));
};