kysely-do
Version:
Kysely dialect for Cloudflare Durable Objects
59 lines (43 loc) • 1.51 kB
Markdown
# kysely-do
[](https://github.com/benallfree/kysely-do/actions/workflows/ci.yaml)
[](https://www.npmjs.com/package/kysely-do)
[Kysely](https://github.com/koskimas/kysely) adapter for [Cloudflare Durable Objects](https://developers.cloudflare.com/durable-objects/).
```bash
npm i kysely-do
```
This project provides a Kysely dialect for Cloudflare Durable Objects, enabling you to use SQL queries with Durable Object storage.
## Usage
### Creating a Durable Object with Kysely
To use kysely-do, you need to create a Durable Object class that initializes a Kysely instance with the `DODialect`. Here's a basic example:
```typescript
import { DurableObject } from 'cloudflare:workers'
import { Kysely } from 'kysely'
import { DODialect } from 'kysely-do'
export interface Env {
MY_OBJECT: DurableObjectNamespace<MyObject>
}
export class MyObject extends DurableObject<Env> {
private db: Kysely<Database>
constructor(ctx: DurableObjectState, env: Env) {
super(ctx, env)
// Create Kysely instance with DODialect
this.db = new Kysely<Database>({
dialect: new DODialect({ ctx }),
})
}
}
```
### Configuration
You'll need to configure your Durable Object binding in your `wrangler.jsonc`:
```jsonc
{
"durable_objects": {
"bindings": [
{
"name": "MY_OBJECT",
"class_name": "MyObject",
},
],
},
}
```