@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
TypeScript
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>>;