pretur.clay
Version:
Client-side immutability helper
19 lines (18 loc) • 1.26 kB
TypeScript
import { SpecType, Model, SpecPool } from 'pretur.spec';
import { MutateRequest, Requester, MutateResult } from 'pretur.sync';
import { Set } from './Set';
import { Record } from './Record';
export interface ApplyMutationsResult {
results: MutateResult<any>[];
applied: boolean;
}
export declare function buildApplyMutations(requester: Requester): (mutations: MutateRequest<any>[]) => Promise<ApplyMutationsResult>;
export declare function applyMutations(requester: Requester, mutations: MutateRequest<any>[]): Promise<ApplyMutationsResult>;
export interface MutationsExtractor {
extractInsertData<T extends SpecType>(clay: Record<T>, scope: string, model: T['name']): Partial<Model<T>>;
extractInsertData<T extends SpecType>(clay: Set<T>, scope: string, model: T['name']): Partial<Model<T>>[];
extractUpdateData<T extends SpecType>(record: Record<T>, scope: string, model: T['name']): Partial<T['fields']>;
extractRemoveIdentifiers<T extends SpecType>(record: Record<T>, scope: string, model: T['name']): Partial<T['fields']>;
getMutations<T extends SpecType>(clay: Set<T> | Record<T>, scope: string, model: T['name']): MutateRequest<any>[];
}
export declare function buildMutationsExtractor(specPool: SpecPool): MutationsExtractor;