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
JavaScript
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;
});