programming.devTypeSQL: write plain SQL strings, get exact TypeScript types (no codegen)submitted by ismail to programming
1 points | 1 comments
https://lemmy.ml/api/v3/image_proxy?url=https%3A%2F%2Fgithub.com%2Fismailkarsli%2FTypeSQL%2Fraw%2Fmain%2Fassets%2Fdemo.gif
I created this new library that parses Postgres SQL inside TypeScript’s type system. You write a SQL string and the compiler infers the row and parameter types. It needs no codegen and no database connection.
const q = sql(`SELECT u.id, u.email, p.title
FROM users u LEFT JOIN posts p ON p.author_id = u.id
WHERE u.id = ${sql.param(7)}`);
// { id: number; email: string; title: string | null }
sql("SELECT nme FROM users");
// error: column "nme" does not exist
* Handles joins, CTEs, subqueries, window functions, INSERT/UPDATE/DELETE … RETURNING
* Runs on pg or postgres.js, and can reuse your existing Kysely, Drizzle or Prisma schema
* Requires TypeScript 7
https://github.com/ismailkarsli/typesql
Feedback welcome, especially queries that don’t type-check but should.
0 reposts0 likes