UNPKG

@coorpacademy/progression-engine

Version:

33 lines (25 loc) 1.12 kB
'use strict'; exports.__esModule = true; exports.default = validate; var _isEqual = require('lodash/fp/isEqual'); var _isEqual2 = _interopRequireDefault(_isEqual); var _getOr = require('lodash/fp/getOr'); var _getOr2 = _interopRequireDefault(_getOr); var _errors = require('../errors'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function validate(config) { return (state, action) => { switch (action.type) { case 'answer': case 'extraLifeAccepted': case 'extraLifeRefused': { if (!(0, _isEqual2.default)(state.nextContent, action.payload.content)) { throw (0, _errors.createStateValidationError)(`The content of the progression state does not match the given ${action.type} action. State content: (${(0, _getOr2.default)('', 'nextContent.ref', state)}) vs action (content - ${(0, _getOr2.default)('', 'payload.content.ref', action)} / nextContent - ${(0, _getOr2.default)('', 'payload.nextContent.ref', action)})`); } break; } } }; } //# sourceMappingURL=validate.js.map