@stratasync/transport-graphql
v0.2.5
Published
GraphQL transport adapter for sync communication and mutations.
Downloads
234
Readme
@stratasync/transport-graphql
GraphQL transport adapter for sync communication and mutations.
Overview
sync-transport-graphql handles communication between the sync client and server:
- GraphQL client initialization: Sync endpoint configuration
- Delta subscriptions: GraphQL subscriptions over WebSocket
- Mutation document generation: Built from model metadata
- Message serialization: Sync payloads including Yjs binary deltas
Installation
npm install @stratasync/transport-graphqlDependencies: @stratasync/core, @stratasync/y-doc
Usage
import { createGraphQLTransport } from "@stratasync/transport-graphql";
const transport = createGraphQLTransport({
endpoint: "https://api.example.com/graphql",
syncEndpoint: "https://api.example.com/sync",
wsEndpoint: "wss://api.example.com/sync/ws",
auth: {
getAccessToken: async () => "token",
},
});
// Pass to SyncClient configuration
const client = new SyncClient({
transport,
});How It Works
- Bootstrap: Fetches initial state via GraphQL query
- Subscribe: Opens a WebSocket subscription for real-time deltas
- Mutate: Sends client mutations as GraphQL mutations
- Reconnect: Handles connection drops with automatic retry and resubscription
Yjs collaborative editing deltas are encoded as binary (Uint8Array) within GraphQL payloads.
