raiden-ts
Version:
Raiden Light Client Typescript/Javascript SDK
35 lines • 1.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/**
* state.iou reducer
* Handles all iou actions and requests
*
* @param state - Current RaidenState['iou'] slice
* @param action - RaidenAction to handle
* @returns New RaidenState['iou'] slice
*/
const unset_1 = __importDefault(require("lodash/fp/unset"));
const state_1 = require("../state");
const actions_1 = require("../utils/actions");
const redux_1 = require("../utils/redux");
const actions_2 = require("./actions");
const iou = (0, actions_1.createReducer)(state_1.initialState.iou)
.handle(actions_2.iouPersist, (state, action) => ({
...state,
[action.meta.tokenNetwork]: {
...state[action.meta.tokenNetwork],
[action.meta.serviceAddress]: action.payload.iou,
},
}))
.handle(actions_2.iouClear, (state, action) => (0, unset_1.default)([action.meta.tokenNetwork, action.meta.serviceAddress], state));
const services = (0, actions_1.createReducer)(state_1.initialState.services).handle(actions_2.servicesValid, (_s, action) => action.payload);
/**
* Nested combined reducer for iou
* Handles the 'iou' substate.
*/
const servicesReducer = (0, redux_1.partialCombineReducers)({ iou, services }, state_1.initialState);
exports.default = servicesReducer;
//# sourceMappingURL=reducer.js.map