UNPKG

@coorpacademy/progression-engine

Version:

45 lines (44 loc) 1.28 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _update2 = _interopRequireDefault(require("lodash/fp/update")); var _set2 = _interopRequireDefault(require("lodash/fp/set")); var _reduce2 = _interopRequireDefault(require("lodash/fp/reduce")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const apply = (variables, instruction) => { const { type, value, field } = instruction; switch (type) { case 'set': return (0, _set2.default)(field, value, variables); case 'add': return (0, _update2.default)(field, v => { if (typeof v === typeof value && (typeof v === 'number' || typeof v === 'string') && (typeof value === 'number' || typeof value === 'string')) return v + value; return v; }, variables); default: return variables; } }; const updateVariables = instructions => fromState => { const { lives, stars, ...variables } = (0, _reduce2.default)(apply, { lives: fromState.lives, stars: fromState.stars, ...fromState.variables }, instructions); return { ...fromState, lives, stars, variables }; }; var _default = exports.default = updateVariables; //# sourceMappingURL=apply-instructions.js.map