0.0.1-beta.1 • Published 9 months ago

y-worker v0.0.1-beta.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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