Document, version, durability, and online options for synchronization.
Members 7
documentId
serverVersion
createMutationId
createMutationId?: () => string;
pendingStorage
initialConnection
initialConnection?: "offline" | "online";
recoverVersionGap Optional host recovery hook.
Optional host recovery hook. Return the missing ordered operations, or a
snapshot for the host to remount before calling `resumeAfterReload`.
limits Positive safe-integer overrides merged over DEFAULTSYNCCOORDINATORLIMITS.
Positive safe-integer overrides merged over `DEFAULT_SYNC_COORDINATOR_LIMITS`.
Declaration
View full TypeScript declaration
export interface SyncCoordinatorOptions {
createMutationId?: () => string;
initialConnection?: "offline" | "online";
Referenced by
Workspace packages depending on @sheetwrite/core
@sheetwrite/benchdependency
@sheetwrite/docs-startdependency
@sheetwrite/reactdependency
@sheetwrite/sveltedependency
@sheetwrite/vuedependency
@sheetwrite/xlsxdependency
Public exports naming SyncCoordinatorOptions
interface PendingCommitStorage {
load(
documentId: string,
options: PendingCommitLoadOptions,
): Promise<readonly PendingCommit[]>;
put(commit: PendingCommit, signal?: AbortSignal): Promise<void>;
remove(
documentId: string,
clientMutationId: string,
signal?: AbortSignal,
): Promise<void>;
replace(
documentId: string,
expectedClientMutationIds: readonly string[],
commits: readonly PendingCommit[],
// … 3 more lines — see the API reference
}interface PendingCommitStorage {
load(
documentId: string,
options: PendingCommitLoadOptions,
): Promise<readonly PendingCommit[]>;
put(commit: PendingCommit, signal?: AbortSignal): Promise<void>;
remove(
documentId: string,
clientMutationId: string,
signal?: AbortSignal,
): Promise<void>;
replace(
documentId: string,
expectedClientMutationIds: readonly string[],
commits: readonly PendingCommit[],
// … 3 more lines — see the API reference
}interface PendingCommitStorage {
load(
documentId: string,
options: PendingCommitLoadOptions,
): Promise<
readonly PendingCommit[]
>;
put(
commit: PendingCommit,
signal?: AbortSignal,
): Promise<void>;
remove(
documentId: string,
clientMutationId: string,
signal?: AbortSignal,
): Promise<void>;
replace(
documentId: string,
expectedClientMutationIds: readonly string[],
// … 4 more lines — see the API reference
}Host-owned durable queue. Browser storage lives in the optional ./browser entrypoint.API reference →interface SyncVersionGapRequest {
documentId: string;
expectedVersion: number;
receivedVersion: number;
signal: AbortSignal;
}interface SyncVersionGapRequest {
documentId: string;
expectedVersion: number;
receivedVersion: number;
signal: AbortSignal;
}interface SyncVersionGapRequest {
documentId: string;
expectedVersion: number;
receivedVersion: number;
signal: AbortSignal;
}Contiguous-version recovery request produced when remote input skips ahead.API reference →interface VersionedOperation {
version: number;
readonly operations: readonly DocumentOp[];
clientMutationId?: string;
batch?: VersionBatchMember;
}interface VersionedOperation {
version: number;
readonly operations: readonly DocumentOp[];
clientMutationId?: string;
batch?: VersionBatchMember;
}interface VersionedOperation {
version: number;
readonly operations: readonly DocumentOp[];
clientMutationId?: string;
batch?: VersionBatchMember;
}Remote document operations paired with a contiguous server version.API reference →interface WorkbookSnapshot {
schemaVersion: 1;
documentId?: string;
version?: number;
workbook: {
activeSheet: SheetId;
namedRanges?: NamedRangeSnapshot[];
};
sheets: SheetSnapshot[];
}interface WorkbookSnapshot {
schemaVersion: 1;
documentId?: string;
version?: number;
workbook: {
activeSheet: SheetId;
namedRanges?: NamedRangeSnapshot[];
};
sheets: SheetSnapshot[];
}interface WorkbookSnapshot {
schemaVersion: 1;
documentId?: string;
version?: number;
workbook: {
activeSheet: SheetId;
namedRanges?: NamedRangeSnapshot[];
};
sheets: SheetSnapshot[];
}Schema-versioned serializable workbook document.API reference →interface SyncCoordinatorLimits {
maxMutationIdBytes: number;
maxOperationsPerVersion: number;
maxVersionPayloadBytes: number;
maxFutureVersionDistance: number;
maxBufferedVersions: number;
maxBufferedOperations: number;
maxBufferedBytes: number;
maxRecentAcknowledgements: number;
maxBatchVersions: number;
maxBatchBytes: number;
maxPendingCommits: number;
maxPendingOperations: number;
maxPendingEncodedBytes: number;
}interface SyncCoordinatorLimits {
maxMutationIdBytes: number;
maxOperationsPerVersion: number;
maxVersionPayloadBytes: number;
maxFutureVersionDistance: number;
maxBufferedVersions: number;
maxBufferedOperations: number;
maxBufferedBytes: number;
maxRecentAcknowledgements: number;
maxBatchVersions: number;
maxBatchBytes: number;
maxPendingCommits: number;
maxPendingOperations: number;
maxPendingEncodedBytes: number;
}interface SyncCoordinatorLimits {
maxMutationIdBytes: number;
maxOperationsPerVersion: number;
maxVersionPayloadBytes: number;
maxFutureVersionDistance: number;
maxBufferedVersions: number;
maxBufferedOperations: number;
maxBufferedBytes: number;
maxRecentAcknowledgements: number;
maxBatchVersions: number;
maxBatchBytes: number;
maxPendingCommits: number;
maxPendingOperations: number;
maxPendingEncodedBytes: number;
}Resource ceilings applied independently to remote collaboration input and local durability.API reference →