UNPKG

pretur.clay

Version:
38 lines (37 loc) 1.73 kB
import { Spec, SpecType, Model, SpecPool } from 'pretur.spec'; import { Dispatch } from 'reducible-node'; import { Query, MutateRequest, Requester } from 'pretur.sync'; import { State } from './clay'; import { Querier } from './Querier'; import { Record } from './Record'; import { Set } from './Set'; import { Fields } from './fields'; export interface MutationGetter<T extends SpecType = SpecType> { (clay: Set<T> | Record<T>, scope: string, model: T['name']): MutateRequest<T>[]; } export declare function selectAndRefresh<T extends SpecType>(pool: SpecPool, spec: Spec<T>, requester: Requester, dispatch: Dispatch, set: Set<T>, querier: Querier<T>, extra?: Query<T>): Promise<{ data: Model<T>[]; count: number; }>; export interface Helpers<T extends SpecType> { fields(values?: Partial<Model<T>>): Fields<T>; record(state?: State, values?: Partial<Model<T>>): Record<T>; record(values?: Partial<Model<T>>): Record<T>; set(items?: Partial<Model<T>>[]): Set<T>; mutations(clay: Set<T> | Record<T>): MutateRequest<T>[]; querier(query?: Query<T>): Querier<T>; load(query?: Query<T>): Promise<{ data: Model<T>[]; count: number; }>; load(dispatch: Dispatch, set: Set<T>, query?: Query<T>): Promise<void>; load(dispatch: Dispatch, record: Record<T>, query?: Query<T>): Promise<boolean>; select(dispatch: Dispatch, set: Set<T>, querier: Querier<T>, extra?: Query<T>): Promise<{ data: Model<T>[]; count: number; }>; } export interface HelperFactory { <T extends SpecType>(spec: Spec<T>): Helpers<T>; } export declare function buildHelpersFactory(pool: SpecPool, requester: Requester, mutationGetter: MutationGetter<any>): HelperFactory;