UNPKG

reactronic

Version:

Reactronic - Transactional Reactive State Management

60 lines (59 loc) 2.05 kB
export { Meta } from "./Meta.js"; export type AbstractChangeset = { readonly id: number; readonly hint: string; readonly timestamp: number; readonly sealed: boolean; }; export declare class FieldVersion<T = any> { content: T; reactions?: Set<Reaction>; lastEditorChangesetId: number; get isLaunch(): boolean; constructor(content: T, lastEditorChangesetId: number); } export type Reaction = { readonly order: number; readonly triggers: Map<FieldVersion, Subscription> | undefined; readonly obsoleteSince: number; hint(nop?: boolean): string; markObsoleteDueTo(trigger: FieldVersion, fk: FieldKey, changeset: AbstractChangeset, h: ObjectHandle, outer: string, since: number, collector: Array<Reaction>): void; relaunchIfNotUpToDate(now: boolean, nothrow: boolean): void; }; export type FieldKey = PropertyKey; export type Subscription = { readonly memberHint: string; readonly usageCount: number; }; export declare class ObjectVersion { readonly changeset: AbstractChangeset; readonly former: { objectVersion: ObjectVersion; }; readonly data: any; readonly changes: Set<FieldKey>; readonly conflicts: Map<FieldKey, ObjectVersion>; constructor(changeset: AbstractChangeset, former: ObjectVersion | undefined, data: object); get revision(): number; get disposed(): boolean; set disposed(value: boolean); } export declare class ObjectHandle { private static generator; readonly id: number; readonly data: any; readonly proxy: any; applied: ObjectVersion; editing?: ObjectVersion; editors: number; hint: string; constructor(data: any, proxy: any, handler: ProxyHandler<ObjectHandle>, applied: ObjectVersion, hint: string); static getHint(obj: object, full: boolean): string | undefined; } export type PatchSet = Map<object, Map<FieldKey, ValuePatch>>; export type ValuePatch = { fieldKey: FieldKey; patchKind: "update" | "add" | "remove"; freshContent: any; formerContent: any; };