UNPKG

ruddy

Version:

Modularized state-management tools for modern front-end applications. Manage dispatched messages in a clean and predictable way for either small or large scale projects

58 lines (50 loc) 3.23 kB
import _default15 from 'ramda/src/prop'; import _default14 from 'ramda/src/defaultTo'; import _default13 from 'ramda/src/call'; import _default12 from 'ramda/src/objOf'; import _default11 from 'ramda/src/isNil'; import _default10 from 'ramda/src/ifElse'; import _default9 from 'ramda/src/compose'; import _default8 from 'ramda/src/identity'; import _default7 from 'ramda/src/merge'; import _default6 from 'ramda/src/converge'; import _default5 from 'ramda/src/F'; import _default4 from 'ramda/src/unless'; import _default3 from 'ramda/src/always'; import _default2 from 'ramda/src/T'; import _default from 'ramda/src/curry'; import { isAction } from '../util/is'; import { isActionTypeInCurrentState, noMachines } from '../machines'; import VALIDATION_LEVELS from '../validators/levels'; export default _default(function (logger, getDuckMatchingAction, getState, action) { if (isAction(action)) { try { var _validatorsByLevel; var _getDuckMatchingActio = getDuckMatchingAction(action), machines = _getDuckMatchingActio.machines, _getDuckMatchingActio2 = _getDuckMatchingActio.isPayloadValid, isPayloadValid = _getDuckMatchingActio2 === undefined ? _default2 : _getDuckMatchingActio2, _getDuckMatchingActio3 = _getDuckMatchingActio.getValidationErrors, getValidationErrors = _getDuckMatchingActio3 === undefined ? _default3(null) : _getDuckMatchingActio3, _getDuckMatchingActio4 = _getDuckMatchingActio.pruneInvalidFields, pruneInvalidFields = _getDuckMatchingActio4 === undefined ? _default3(action) : _getDuckMatchingActio4, _getDuckMatchingActio5 = _getDuckMatchingActio.stateMachinesPropName, stateMachinesPropName = _getDuckMatchingActio5 === undefined ? 'states' : _getDuckMatchingActio5, _getDuckMatchingActio6 = _getDuckMatchingActio.validationLevel, validationLevel = _getDuckMatchingActio6 === undefined ? VALIDATION_LEVELS.CANCEL : _getDuckMatchingActio6; if (noMachines(machines)) { return action; } var validatorsByLevel = (_validatorsByLevel = {}, _validatorsByLevel[VALIDATION_LEVELS.CANCEL] = _default4(isPayloadValid, _default5), _validatorsByLevel[VALIDATION_LEVELS.LOG] = _default6(_default7, [_default8, _default9(_default10(_default11, _default3({}), _default12('validationErrors')), getValidationErrors)]), _validatorsByLevel[VALIDATION_LEVELS.PRUNE] = pruneInvalidFields, _validatorsByLevel[VALIDATION_LEVELS.STRICT] = _default4(_default6(isActionTypeInCurrentState, [getState, _default8, _default3({ machines: machines, stateMachinesPropName: stateMachinesPropName })]), _default5), _validatorsByLevel); /* Get the validator matching the validationLevel setting and run it on the action payload */ var validatedAction = _default13(_default9(_default14(_default8), _default15(validationLevel))(validatorsByLevel), action); /* either pass the validated action forward through the middleware chain or stop it right here */ if (isAction(validatedAction)) { return validatedAction; } } catch (error) { logger.error('Unable to validate action: ' + action.type, error); } } return false; });