Skip to content

samlaycock/kysely-durable-object-sqlite

Repository files navigation

Kysely Durable Object Sqlite

A Kysely dialect for Cloudflare Durable Objects Sqlite Storage.

Install

npm i kysely kysely-durable-object-sqlite

Usage

import { DurableObject } from "cloudflare:workers";
import { Kysely } from "kysely";
import { DurableObjectSqliteDialect } from "kysely-durable-object-sqlite";

interface ExampleDatabase {
  users: {
    id: number;
    name: string;
  };
}

export class ExampleDurableObject extends DurableObject {
  private _db: Kysely<ExampleDatabase>;

  constructor(ctx, env) {
    super(ctx, env);

    this._db = new Kysely({
      dialect: new DurableObjectSqliteDialect({
        sql: this.ctx.storage.sql
      }),
    });

    this.ctx.blockConcurrencyWhile(async () => {
      // Do some migrations...?
    });
  }

  async getUsers() {
    const users = await this._db
      .selectFrom("users")
      .selectAll()
      .execute();

    return users;
  }
}

About

A Kysely dialect for Cloudflare Durable Object Sqlite Storage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published