partysync
Version:
Experimental library to synchronize state between a Durable Object and client. See [design discussion](https://github.com/cloudflare/partykit/issues/147).
52 lines (50 loc) • 1.26 kB
TypeScript
import { SyncServer } from "../server/index.js";
import { RPCClient } from "partyfn";
//#region src/agent/index.d.ts
declare class Agent<
Env extends Cloudflare.Env = Cloudflare.Env,
Channels extends {
[Channel: string]: {
record: unknown[];
action: {
type: string;
payload: unknown;
};
};
} = Record<
string,
{
record: unknown[];
action: {
type: string;
payload: unknown;
};
}
>
> extends SyncServer<Env, Channels> {
ws: WebSocket | null;
state: Record<string, Channels[keyof Channels]["record"][]>;
rpc: Record<
string,
RPCClient<
Channels[keyof Channels]["action"],
Channels[keyof Channels]["record"][]
>
>;
constructor(state: DurableObjectState, env: Env);
onAction(
_channel: keyof Channels,
action: Channels[keyof Channels]["action"]
):
| Channels[keyof Channels]["record"][]
| Promise<Channels[keyof Channels]["record"][]>;
connect(namespace: string, room: string): Promise<void>;
sync(channel: string): Promise<void>;
sendAction(
channel: keyof Channels,
action: Channels[keyof Channels]["action"]
): Promise<void>;
}
//#endregion
export { Agent };
//# sourceMappingURL=index.d.ts.map