@radixdlt/atom-transaction-mapping
Version:
20 lines • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeParticleReducer = exports.reduceFromInitialState = void 0;
const neverthrow_1 = require("neverthrow");
const reduceFromInitialState = (input) => input.upParticles.reduce((state, upParticle) => {
if (state.isOk()) {
return input.reduce({ state: state.value, upParticle });
}
else {
return state;
}
}, neverthrow_1.ok(input.initialState));
exports.reduceFromInitialState = reduceFromInitialState;
const makeParticleReducer = (input) => {
if (input.applicationStateType !== input.initialState.stateType)
throw new Error('Incorrect implementation, mismatch between application state types.');
return Object.assign(Object.assign({}, input), { reduceFromInitialState: (upParticles) => exports.reduceFromInitialState(Object.assign(Object.assign({}, input), { upParticles })) });
};
exports.makeParticleReducer = makeParticleReducer;
//# sourceMappingURL=particleReducer.js.map