@volverjs/data
Version:
Repository pattern implementation with a tiny HttpClient based on Fetch API.
67 lines (62 loc) • 1.65 kB
text/typescript
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
}
}