lsync API
    Preparing search index...

    Interface Client<TApi>

    interface Client<TApi extends ApiContract = ApiContract> {
        clientId: string;
        call<TPath extends string>(
            path: TPath,
            ...args: ApiCallArgs<TApi, TPath>,
        ): Promise<ApiOutput<TApi, TPath>>;
        changes(
            query: { collections: Record<string, number>; limit?: number },
        ): Promise<
            | {
                cursors?: Record<string, number>;
                hasMore: boolean;
                type: "changes";
                updates: {
                    clientId?: string;
                    collection: string;
                    createdAt: number;
                    id: string;
                    key: string | number;
                    path?: string;
                    previousValue?: unknown;
                    sequence: number;
                    serverCreatedAt: string;
                    type: "insert" | "update" | "delete";
                    value?: unknown;
                }[];
                watermark: number;
            }
            | { collections: string[]; type: "resyncRequired"; watermark: number },
        >;
        close(): void;
        push(
            batch: {
                updates: {
                    clientId?: string;
                    collection: string;
                    createdAt: number;
                    id: string;
                    key: string | number;
                    path?: string;
                    previousValue?: unknown;
                    type: "insert" | "update" | "delete";
                    value?: unknown;
                }[];
            },
        ): Promise<{ accepted: number; watermark: number }>;
        read<T = unknown>(query: ReadQueryInput): Promise<ReadResult<T>>;
        subscribe(
            collection: string,
            listener: (
                broadcast: {
                    invalidations?: { collection: string }[];
                    shardId: string;
                    type: "updates";
                    updates: {
                        clientId?: string;
                        collection: string;
                        createdAt: number;
                        id: string;
                        key: string | number;
                        path?: string;
                        previousValue?: unknown;
                        sequence: number;
                        serverCreatedAt: string;
                        type: "insert" | "update" | "delete";
                        value?: unknown;
                    }[];
                    watermark: number;
                },
            ) => void,
        ): ClientSubscription;
    }

    Type Parameters

    Index
    clientId: string
    • Parameters

      • query: { collections: Record<string, number>; limit?: number }

      Returns Promise<
          | {
              cursors?: Record<string, number>;
              hasMore: boolean;
              type: "changes";
              updates: {
                  clientId?: string;
                  collection: string;
                  createdAt: number;
                  id: string;
                  key: string | number;
                  path?: string;
                  previousValue?: unknown;
                  sequence: number;
                  serverCreatedAt: string;
                  type: "insert" | "update" | "delete";
                  value?: unknown;
              }[];
              watermark: number;
          }
          | { collections: string[]; type: "resyncRequired"; watermark: number },
      >

    • Parameters

      • batch: {
            updates: {
                clientId?: string;
                collection: string;
                createdAt: number;
                id: string;
                key: string | number;
                path?: string;
                previousValue?: unknown;
                type: "insert" | "update" | "delete";
                value?: unknown;
            }[];
        }

      Returns Promise<{ accepted: number; watermark: number }>

    • Parameters

      • collection: string
      • listener: (
            broadcast: {
                invalidations?: { collection: string }[];
                shardId: string;
                type: "updates";
                updates: {
                    clientId?: string;
                    collection: string;
                    createdAt: number;
                    id: string;
                    key: string | number;
                    path?: string;
                    previousValue?: unknown;
                    sequence: number;
                    serverCreatedAt: string;
                    type: "insert" | "update" | "delete";
                    value?: unknown;
                }[];
                watermark: number;
            },
        ) => void

      Returns ClientSubscription