@coorpacademy/progression-engine
Version:
33 lines (25 loc) • 1.12 kB
JavaScript
;
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