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.

  • ismail@lemmy.mlOP
    link
    fedilink
    arrow-up
    1
    ·
    5 days ago

    So what you want me to do? I did not create AI. I’m doing software for 7 years now and I’m not happy where the sector is going too. But what I can do?

    I could not build this project in a week if there was no AI and likely wouldn’t even bother without it because it is pretty complicated.

    I’m still pretty enthusiastic about it. I do enjoy when I see the results. I’m trying to share something and make my life easier. So what? I should rewrite it by hand because that is more valuable?

    I really don’t know what you want me to do.