UNPKG

ilp-plugin-virtual

Version:

ILP virtual ledger plugin for directly transacting connectors

28 lines (24 loc) 795 B
export default function clientMiddleware (client) { return ({dispatch, getState}) => { return next => action => { if (typeof action === 'function') { return action(dispatch, getState) } const { promise, types, ...rest } = action // eslint-disable-line no-redeclare if (!promise) { return next(action) } const [REQUEST, SUCCESS, FAILURE] = types next({...rest, type: REQUEST}) const actionPromise = promise(client) actionPromise.then( result => next({...rest, result, type: SUCCESS}), error => next({...rest, error, type: FAILURE}) ).catch(error => { console.error('MIDDLEWARE ERROR:', error) next({...rest, error, type: FAILURE}) }) return actionPromise } } }