UNPKG

attadux

Version:

Implementation of the redux-modular-ducks, forked from the extensible-duck implementation and extended to include spected validators, state machines, helpers, web workers, effect handling, action multipliers, action enhancers, action throttling/debouncing

60 lines (50 loc) 3.4 kB
import _default15 from 'ramda/src/T'; import _default14 from 'ramda/src/prop'; import _default13 from 'ramda/src/defaultTo'; import _default12 from 'ramda/src/call'; import _default11 from 'ramda/src/objOf'; import _default10 from 'ramda/src/always'; import _default9 from 'ramda/src/isNil'; import _default8 from 'ramda/src/ifElse'; import _default7 from 'ramda/src/compose'; import _default6 from 'ramda/src/identity'; import _default5 from 'ramda/src/merge'; import _default4 from 'ramda/src/converge'; import _default3 from 'ramda/src/F'; import _default2 from 'ramda/src/unless'; 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); var machines = _getDuckMatchingActio.machines; var _getDuckMatchingActio2 = _getDuckMatchingActio.isPayloadValid; var isPayloadValid = _getDuckMatchingActio2 === undefined ? _default15 : _getDuckMatchingActio2; var _getDuckMatchingActio3 = _getDuckMatchingActio.getValidationErrors; var getValidationErrors = _getDuckMatchingActio3 === undefined ? _default10(null) : _getDuckMatchingActio3; var _getDuckMatchingActio4 = _getDuckMatchingActio.pruneInvalidFields; var pruneInvalidFields = _getDuckMatchingActio4 === undefined ? _default10(action) : _getDuckMatchingActio4; var _getDuckMatchingActio5 = _getDuckMatchingActio.stateMachinesPropName; var stateMachinesPropName = _getDuckMatchingActio5 === undefined ? 'states' : _getDuckMatchingActio5; var _getDuckMatchingActio6 = _getDuckMatchingActio.validationLevel; var validationLevel = _getDuckMatchingActio6 === undefined ? VALIDATION_LEVELS.CANCEL : _getDuckMatchingActio6; if (noMachines(machines)) { return action; } var validatorsByLevel = (_validatorsByLevel = {}, _validatorsByLevel[VALIDATION_LEVELS.CANCEL] = _default2(isPayloadValid, _default3), _validatorsByLevel[VALIDATION_LEVELS.LOG] = _default4(_default5, [_default6, _default7(_default8(_default9, _default10({}), _default11('validationErrors')), getValidationErrors)]), _validatorsByLevel[VALIDATION_LEVELS.PRUNE] = pruneInvalidFields, _validatorsByLevel[VALIDATION_LEVELS.STRICT] = _default2(_default4(isActionTypeInCurrentState, [getState, _default6, _default10({ machines: machines, stateMachinesPropName: stateMachinesPropName })]), _default3), _validatorsByLevel); /* Get the validator matching the validationLevel setting and run it on the action payload */ var validatedAction = _default12(_default7(_default13(_default6), _default14(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; });