UNPKG

vscroll

Version:
29 lines (28 loc) 1.15 kB
import { Settings, DevSettings } from './settings'; import { IAdapter } from './adapter'; type SuccessFn<T = unknown> = (data: T[]) => void; type ErrorFn = (error: unknown) => void; export interface ObservableLike<T = unknown> { subscribe(next: SuccessFn<T>, error: ErrorFn, complete: () => void): { unsubscribe: () => void; }; } type DSGetCallback<T> = (index: number, count: number, success: SuccessFn<T>, fail?: ErrorFn) => void; type DSGetObservable<T> = (index: number, count: number) => ObservableLike<T[]>; type DSGetPromise<T> = (index: number, count: number) => PromiseLike<T[]>; export type DatasourceGet<T> = DSGetCallback<T> | DSGetObservable<T> | DSGetPromise<T>; export interface IDatasourceParams<T = unknown> { get: DatasourceGet<T>; settings?: Settings<T>; devSettings?: DevSettings; } export interface IDatasourceOptional<T = unknown> extends Omit<IDatasourceParams<T>, 'get'> { get?: DatasourceGet<T>; } export interface IDatasource<T = unknown> extends IDatasourceParams<T> { adapter?: IAdapter<T>; } export interface IDatasourceConstructed<T = unknown> extends IDatasource<T> { adapter: IAdapter<T>; } export {};