UNPKG

@versatiledatakit/shared

Version:

Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.

33 lines (32 loc) 1.81 kB
import { Observable } from 'rxjs'; import { ServiceHttpErrorCodes } from '../../../../common'; import { BaseActionWithPayload } from '../../../ngrx'; import { ComponentService } from '../../services'; import { ComponentModel, ComponentState } from '../../model'; /** * ** RXJS Operator that fetch Component Model from Store using provided ComponentService. * * - Returns Observable<ComponentModel> */ export declare const getModel: (componentService: ComponentService) => (source$: Observable<BaseActionWithPayload<ComponentState>>) => Observable<ComponentModel>; /** * ** RXJS Operator that fetch Component Model from Store using provided ComponentService and consume task from Action. * * - Returns Observable<[ComponentModel, string]> */ export declare const getModelAndTask: (componentService: ComponentService) => (source$: Observable<BaseActionWithPayload<ComponentState>>) => Observable<[ComponentModel, string]>; export declare type TaskID = string; export declare type ObjectUUID = string; /** * ** Handle Error from some Action, ideal to use for API response. * * - catch error if happened * - auto-process from provided error, serviceHttpErrorCodes and objectUUID * - append it to Model * - append task to model * - set status to FAILED * - create instance of {@link ComponentFailed} and return stream in success state using {@link of} rjxs operator * * - Factory callbacks should return tuple of [Component Model, Task Id, Object UUID, Error records codes from API service] */ export declare const handleActionError: (paramFactory: () => [ComponentModel, TaskID, ObjectUUID, Record<keyof ServiceHttpErrorCodes, string>]) => (source$: Observable<BaseActionWithPayload<ComponentState>>) => Observable<BaseActionWithPayload<ComponentState>>;