reactronic
Version:
Reactronic - Transactional Reactive State Management
60 lines (59 loc) • 2.09 kB
TypeScript
export { Meta } from "./Meta.js";
export type AbstractChangeset = {
readonly id: number;
readonly hint: string;
readonly timestamp: number;
readonly sealed: boolean;
};
export declare class ContentFootprint<T = any> {
content: T;
listeners?: Set<OperationFootprint>;
lastEditorChangesetId: number;
get isComputed(): boolean;
constructor(content: T, lastEditorChangesetId: number);
}
export type OperationFootprint = {
readonly order: number;
readonly signals: Map<ContentFootprint, ListeningInfo> | undefined;
readonly obsoleteSince: number;
hint(nop?: boolean): string;
markObsoleteDueTo(footprint: ContentFootprint, fk: FieldKey, changeset: AbstractChangeset, h: ObjectHandle, outer: string, since: number, collector: Array<OperationFootprint>): void;
relaunchIfNotUpToDate(now: boolean, nothrow: boolean): void;
};
export type FieldKey = PropertyKey;
export type ListeningInfo = {
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;
};