Connection
CL ORM provides two driver functions to create a unified Connection interface.
D1
import { useD1 } from 'cl-orm';
const db = useD1(env.DB);
env.DBis aD1Databasebinding from your Cloudflare Worker.
Durable Objects
import { useDO } from 'cl-orm';
const db = useDO(ctx.storage.sql);
ctx.storage.sqlis aSqlStoragefrom your Durable Object.
Available Connection Methods
Raw Query
You can execute raw SQL queries using the query method:
- D1
- Durable Objects
import { useD1 } from 'cl-orm';
const db = useD1(env.DB);
const { rows, meta } = await db.query<{ id: number; name: string }>(
'SELECT * FROM users WHERE id = ?',
[1]
);
const user = rows[0] || null;
import { useDO } from 'cl-orm';
const db = useDO(ctx.storage.sql);
const { rows, meta } = await db.query<{ id: number; name: string }>(
'SELECT * FROM users WHERE id = ?',
[1]
);
const user = rows[0] || null;
Raw WHERE
You can use a raw string as the where clause in select, update and delete, passing the params manually:
- D1
- Durable Objects
import { useD1 } from 'cl-orm';
const db = useD1(env.DB);
const user = await db.select<{ id: number; name: string }>({
from: 'users',
where: 'id = ?',
params: [1],
limit: 1,
});
import { useDO } from 'cl-orm';
const db = useDO(ctx.storage.sql);
const user = await db.select<{ id: number; name: string }>({
from: 'users',
where: 'id = ?',
params: [1],
limit: 1,
});