UNPKG

@duckness/epic

Version:

Redux-Observable extension for @duckness/duck - Modular Redux Ducks hatchery

48 lines 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var duck_1 = require("@duckness/duck"); var redux_observable_1 = require("redux-observable"); var operators_1 = require("rxjs/operators"); function EpicDuck(duckName, poolName, duckContext) { var duck = (0, duck_1.default)(duckName, poolName, duckContext); var refErrorReporter = { current: ('undefined' !== typeof console && console.error) || (function () { return void 0; }) }; var setErrorReporter = function (reporter) { refErrorReporter.current = reporter; }; var reportError = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if ('function' === typeof refErrorReporter.current) { refErrorReporter.current.apply(refErrorReporter, args); } }; var epics = []; var addEpic = function (epic) { epics.push(function (action$, state$, dependencies) { return (dependencies ? epic(action$, state$, dependencies, duck.duckFace) : epic(action$, state$, duck.duckFace)).pipe((0, operators_1.catchError)(function (error, source) { try { error.poolName = duck.poolName; error.duckName = duck.duckName; } catch (_a) { } reportError(error, '@duckness/epic', duck.poolName, duck.duckName); return source; })); }); }; var rootEpic = function () { return redux_observable_1.combineEpics.apply(void 0, epics); }; Object.defineProperty(duck, 'epic', { value: addEpic, writable: false, enumerable: true }); Object.defineProperty(duck, 'rootEpic', { value: rootEpic, writable: false, enumerable: true }); Object.defineProperty(duck, 'setErrorReporter', { value: setErrorReporter, writable: false, enumerable: true }); Object.defineProperty(duck, 'reportError', { value: reportError, writable: false, enumerable: true }); return duck; } exports.default = EpicDuck; //# sourceMappingURL=EpicDuck.js.map