@pdv/sqlite-gen
v0.2.1
Published
Generate Typescript from SQL for node:sqlite or Cloudflare D1
Downloads
4
Maintainers
Readme
sqlite-gen
Generate TypeScript from annotated SQL. Supports node:sqlite and Cloudflare D1
Usage
npx @pdv/sqlite-gen queries.sql queries.gen.ts [node|d1]Examples
-- @name createUsersTable
-- @count exec
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);
-- @name insertUser
-- @count one
-- @param name string
-- @returns id number
INSERT INTO users (name) VALUES (?) RETURNING id;
-- @name getAllUsers
-- @count many
-- @returns id number
-- @returns name string
SELECT id, name FROM users;Node
import { DatabaseSync } from 'node:sqlite';
import { createUsersTable, insertUser, getAllUsers } from './queries.gen.js';
const db = new DatabaseSync(':memory:');
createUsersTable(db);
insertUser(db, 'Alice');
const users = getAllUsers(db);Cloudflare Workers
import { createUsersTable, insertUser, getAllUsers } from './queries.gen.js';
export default {
async fetch(request: Request, env: Env): Promise<Response> {
await createUsersTable(env.DB);
const newUser = await insertUser(env.DB, 'Alice');
const users = await getAllUsers(env.DB);
return Response.json({ newUser, users });
}
}Requirements
- Node.js 22.5.0+ (for
node:sqlitesupport) - Cloudflare Workers (for D1 support)
See Also
- sqldelight (Kotlin)
- sqlc (Go)
- SQLx (Rust)
- PgTyped (TypeScript/PostgreSQL)
License
ISC
