UNPKG

@volverjs/data

Version:

Repository pattern implementation with a tiny HttpClient based on Fetch API.

51 lines (50 loc) 1.59 kB
import type { ParamMap } from './types'; export interface Repository<Type> { read: (params?: ParamMap, options?: { key?: string | number | boolean; } & Record<string, unknown>) => { responsePromise: Promise<{ ok: boolean; aborted?: boolean; abortReason?: string; data?: Type[]; item?: Type; metadata?: ParamMap; }>; abort?: (reason?: string) => void; signal?: AbortSignal; }; create: (payload?: Type | Type[], params?: ParamMap, options?: Record<string, unknown>) => { responsePromise: Promise<{ ok: boolean; aborted?: boolean; abortReason?: string; data?: Type[]; item?: Type; metadata?: ParamMap; }>; abort?: (reason?: string) => void; signal?: AbortSignal; }; update: (payload?: Type | Type[], params?: ParamMap, options?: Record<string, unknown>) => { responsePromise: Promise<{ ok: boolean; aborted?: boolean; abortReason?: string; data?: Type[]; item?: Type; metadata?: ParamMap; }>; abort?: (reason?: string) => void; signal?: AbortSignal; }; remove: (params?: ParamMap, options?: Record<string, unknown>) => { responsePromise: Promise<{ ok: boolean; aborted?: boolean; abortReason?: string; }>; abort?: (reason?: string) => void; signal?: AbortSignal; }; }