reactronic
Version:
Reactronic - Transactional Reactive State Management
94 lines (93 loc) • 3.75 kB
TypeScript
import { F } from "../util/Utils.js";
import { Operation, MemberOptions } from "../Options.js";
import { FieldKey, ObjectHandle, FieldVersion, Reaction, Subscription, AbstractChangeset } from "./Data.js";
import { Transaction } from "./Transaction.js";
import { OptionsImpl } from "./Mvcc.js";
export declare class OperationImpl implements Operation<any> {
readonly ownerHandle: ObjectHandle;
readonly fieldKey: FieldKey;
configure(options: Partial<MemberOptions>): MemberOptions;
get options(): MemberOptions;
get nonreactive(): any;
get args(): ReadonlyArray<any>;
get result(): any;
get error(): boolean;
get stamp(): number;
get isReusable(): boolean;
markObsolete(): void;
pullLastResult(args?: any[]): any;
constructor(h: ObjectHandle, fk: FieldKey);
reuseOrRelaunch(weak: boolean, args: any[] | undefined): Launch;
static getControllerOf(method: F<any>): Operation<any>;
static configureImpl(self: OperationImpl | undefined, options: Partial<MemberOptions>): MemberOptions;
static proceedWithinGivenLaunch<T>(launch: Launch | undefined, func: F<T>, ...args: any[]): T;
static why(): string;
static briefWhy(): string;
static dependencies(): string[];
private peek;
private use;
private edit;
private acquireFromObjectVersion;
private relaunch;
private static markObsolete;
}
declare class Launch extends FieldVersion implements Reaction {
static current?: Launch;
static queuedReactions: Array<Reaction>;
static deferredReactiveOperations: Array<Launch>;
readonly margin: number;
readonly transaction: Transaction;
readonly operation: OperationImpl;
readonly changeset: AbstractChangeset;
triggers: Map<FieldVersion, Subscription> | undefined;
options: OptionsImpl;
cause: string | undefined;
args: any[];
result: any;
error: any;
started: number;
obsoleteDueTo: string | undefined;
obsoleteSince: number;
successor: Launch | undefined;
constructor(transaction: Transaction, operation: OperationImpl, changeset: AbstractChangeset, former: Launch | OptionsImpl, clone: boolean);
get isLaunch(): boolean;
hint(): string;
get order(): number;
get ["#this#"](): string;
clone(t: Transaction, cs: AbstractChangeset): FieldVersion;
why(): string;
briefWhy(): string;
dependencies(): string[];
wrap<T>(func: F<T>): F<T>;
proceed(proxy: any, args: any[] | undefined): void;
markObsoleteDueTo(trigger: FieldVersion, fk: FieldKey, changeset: AbstractChangeset, h: ObjectHandle, outer: string, since: number, collector: Reaction[]): void;
relaunchIfNotUpToDate(now: boolean, nothrow: boolean): void;
isNotUpToDate(): boolean;
reenterOver(head: Launch): this;
private static proceed;
private enter;
private leaveOrAsync;
private leave;
private indicatorEnter;
private indicatorLeave;
private addToDeferredReactiveFunctions;
private static processDeferredReactiveFunctions;
private static markUsed;
private static markEdited;
private static tryResolveConflict;
private static propagateAllChangesThroughSubscriptions;
private static revokeAllSubscriptions;
private static propagateFieldChangeThroughSubscriptions;
private static enqueueReactionsToRun;
private static migrateFieldVersion;
private static processQueuedReactions;
private unsubscribeFromAllTriggers;
private subscribeTo;
private static canSubscribeTo;
private static createOperation;
private static rememberOperationOptions;
static init(): void;
}
export declare function resolveReturn(value: any): any;
export declare function rejectRethrow(error: any): never;
export {};