Skip to content

handleSyncRequest

handleSyncRequest<TEnv, TDurableObjectRpc, CFHostMetada, TSyncPayload>(__namedParameters): Promise<Response>

Defined in: packages/@livestore/sync-cf/src/cf-worker/worker.ts:168

Handles LiveStore sync requests (e.g. with search params ?storeId=...&transport=...).

TEnv extends Env = Env

TDurableObjectRpc extends undefined | DurableObjectBranded = undefined

CFHostMetada = unknown

TSyncPayload = JsonValue

ExecutionContext

Only there for type-level reasons

TEnv

HeadersInit

Request<CFHostMetada>

{ payload: undefined | JsonValue; storeId: string; transport: "http" | "ws"; }

undefined | JsonValue = ...

string = Schema.String

"http" | "ws" = ...

ExtractDurableObjectKeys<TEnv>

Binding name of the sync backend Durable Object

Schema<TSyncPayload, TSyncPayload, never>

(payload, context) => void | Promise<void>

Promise<Response>

const validatePayload = (payload: Schema.JsonValue | undefined, context: { storeId: string }) => {
if (payload?.authToken !== 'insecure-token-change-me') {
throw new Error('Invalid auth token')
}
}
const validatePayload = async (payload: Schema.JsonValue | undefined, { storeId, headers }) => {
const cookie = headers.get('cookie')
const session = await validateSessionFromCookie(cookie)
if (!session) throw new Error('Unauthorized')
}

If the payload is invalid