UNPKG

mst-effect

Version:

Designed to be used with MobX-State-Tree to create asynchronous actions using RxJS.

22 lines (21 loc) 909 B
import { catchError, tap } from 'rxjs/operators'; import { EFFECT_ACTIONS_HANDLER } from '../const'; export function subscribe(self, factory, actions$) { if (!self[EFFECT_ACTIONS_HANDLER]) { console.warn(`[mst-effect]: Make sure the 'types' is imported from 'mst-effect' instead of 'mobx-state-tree'`); } return actions$ .pipe(tap((actions) => { var _a; return (_a = self[EFFECT_ACTIONS_HANDLER]) === null || _a === void 0 ? void 0 : _a.call(self, actions); }), logAngIgnoreError(factory)) .subscribe(); function logAngIgnoreError(factory) { return catchError((err, caught) => { /* eslint-disable no-console */ console.group('[mst-effect]: error'); console.log(factory); console.error(err); console.groupEnd(); /* eslint-enable no-console */ return caught; }); } }