0.0.1-beta.1 • Published 9 months ago
y-worker v0.0.1-beta.1
y-worker
Y-js for Cloudflare Worker.
👷♂️ Still work in progress.
Installation
npm i y-worker
Usage
Add Durable Objects
import { AbstractWorkerProvider } from 'y-worker';
export class WorkerProvider extends AbstractWorkerProvider {
async initialize() {
return new Y.Doc();
}
}
# wrangler.toml
[durable_objects]
bindings = [{ name = "ROOMS", class_name = "WorkerProvider" }]
[[migrations]]
tag = "v1"
new_classes = ["WorkerProvider"]
Connect WebSocket
export default {
async fetch(req, env) {
const url = new URL(req.url);
const roomId = c.env.ROOMS.idFromName(`room_name`);
const room = c.env.ROOMS.get(roomId);
return room.fetch(`${url.origin}?roomId=${encodeURIComponent(url.pathname)}`, {
headers: c.req.raw.headers
});
}
}
Store shared doc on KVNamepsace
License
MIT License © 2023 XLor
0.0.1-beta.1
9 months ago