pretur.clay
Version:
Client-side immutability helper
25 lines (24 loc) • 1.09 kB
TypeScript
import { SpecType } from 'pretur.spec';
import { ValidationError } from 'pretur.validation';
import { Action, Dispatch } from 'reducible-node';
import { Clay, State } from './clay';
import { Fields } from './fields';
export declare class Record<T extends SpecType> implements Clay<Record<T>> {
readonly identifier: symbol;
readonly original: this;
readonly state: State;
readonly fields: Fields<T>;
readonly error: ValidationError;
constructor(fields: Fields<T>, error?: ValidationError, state?: State, original?: Record<T>, identifier?: symbol);
readonly modified: boolean;
readonly valid: boolean;
reduce(action: Action<any>): this;
clear(dispatch: Dispatch): void;
replace(dispatch: Dispatch, by: this): void;
setField<K extends keyof Fields<T>>(dispatch: Dispatch, field: K, value: Fields<T>[K]): void;
setError(dispatch: Dispatch, error: ValidationError): void;
setState(dispatch: Dispatch, state: State): void;
remove(dispatch: Dispatch): void;
discard(dispatch: Dispatch): void;
unremove(dispatch: Dispatch): void;
}