UNPKG

redux-reporter

Version:

Redux middleware for reporting actions to third party APIs.

70 lines (49 loc) 1.41 kB
var defaultSelect = function (ref) { var meta = ref.meta; if ( meta === void 0 ) meta = {}; return meta.report; }; var reporter = function (handler, select) { if ( select === void 0 ) select = defaultSelect; return function (ref) { var getState = ref.getState; return function (next) { return function (action) { var returnValue = next(action); if (typeof action === 'function') { return returnValue } var report = select(action); if (!report) { return returnValue } handler(report, getState); return returnValue }; }; } }; var errorSelect = function (ref) { var error = ref.error; if ( error === void 0 ) error = false; var payload = ref.payload; var type = ref.type; if (!error) { return null } if (!payload) { console.warn('Actions that represent errors should have an error object as payload, generic error used'); return new Error(type) } return payload }; var errorReporter = function (handler) { return reporter(handler, errorSelect); }; var crashReporter = function (handler) { return function (ref) { var getState = ref.getState; return function (next) { return function (action) { var returnValue; try { returnValue = next(action); } catch (err) { handler(err, getState); console.error(err); } return returnValue }; }; } }; export { errorReporter, crashReporter };export default reporter;