kysely-codegen
pgtyped
kysely-codegen | pgtyped | |
---|---|---|
9 | 34 | |
625 | 2,815 | |
- | - | |
8.7 | 8.7 | |
18 days ago | about 12 hours ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kysely-codegen
-
Show HN: Tsynamo – Type-friendly DynamoDB query builder for TypeScript
Hello HN! I was recently introduced to Kysely (https://github.com/kysely-org/kysely), a type-safe Typescript SQL query builder, and instantly fell in love! I got inspired and wanted to make something similar for AWS DynamoDB.
Thus, I developed Tsynamo! Instead of calling it type-safe, I decided to go with type-friendly, because the library is still in an early stage, and is not 100% type-safe.
Under the hood, Tsynamo compiles the built queries into AWS SDK v3 commands. I feel that Tsynamo simplifies the AWS SDK API quite a lot since the developer doesn't have to mess around with condition/filter expressions or attribute names/values themselves, and as a bonus gets autocompletion for building the queries!
There's also a playground to test it out in your browser: https://try.tsynamo.dev. It might not have the most up-to-date API of the library in use yet, but you can get the library's main idea from there.
Since the project is still in its early stages, it doesn't yet have 100% support for all DynamoDB features, like querying indexes. The next steps will be increasing the support coverage and perhaps adding automatic type generation as inspired by kysely-codegen (https://github.com/RobinBlomberg/kysely-codegen).
Would love to get some feedback, thanks in advance!
-
Simple CQRS in NodeJS with Typescript
Querying the database (PostgreSQL) should not be ground breaking. Personally I like to have full type-safety so we can easily catch bugs during the development time without introducing any tests that are just testing the data type from our datastore to match the data type our API expects. I like to go database schema first, which means that we generate types from the database schema and work with those. Any change to the schema of the database is made with SQL migrations and after that, the typescript types are regenerated. Another approach is to use a code-first tool like TypeORM or Prisma. However in my experience such tools often produce not efficient SQL queries and are less easy to extend. In my projects I use library kysely (https://github.com/koskimas/kysely) with kysely-codegen (https://github.com/RobinBlomberg/kysely-codegen) to have a full type-safe SQL builder.
-
Kysely: TypeScript SQL Query Builder
The main difference to me is that with Prisma I don't need to do any SQL to get a project up and running. I can define the tables and relations from my code or from Prisma Studio, and in one swoop I get the db structure done and the types defined.
I know my way around a database, but I'd rather not leave my code editor whenever I need to add a new column to a table.
With Kysely you have to create the DB schema, and then write the types; with every change you need, you gotta do both again.
(At least this seems true by default; as the project's readme mentions, there is a code generator[1] to generate the types from the DB schema; not quite the same but at least it's better than nothing.)
Commenters say that writing complex queries with Kysely is easier, which makes me wonder if I could use Prisma except for those, since Kysely should be able to just generate the SQL query for me to handle to Prisma...
[1]: https://github.com/RobinBlomberg/kysely-codegen
-
Allow Cloudflare D1 to be used like an O/R mapper with type-safe
kysely kysely-codegen kysely-d1 allows access to D1 while using SQL Builder.
-
Well, shit. Objection.js has been sunset, which ORM/querybuilder did you move to?
For what it's worth, I've been using kysely-codegen to generate the types based on the database schema and it's been working great for me.
-
ADVICE WANTED - Typescript PostgreSQL without ORM
I dislike ORMs and have been using Kysely https://github.com/koskimas/kysely and https://github.com/RobinBlomberg/kysely-codegen for a small project and so far I love it. It's a mapper/query builder that is equivalent to Dapper in C# (without the query builder) but with the power of typescript's type system to enforce proper queries. You can also bypass something with the sql to write raw SQL.
- The PlanetScale serverless driver for JavaScript
- Closest library/setup/configuration to JOOQ?
pgtyped
-
Type-Safe Printf() in TypeScript
There is an implementation of SQL that operates on a table shaped type, entirely at type level. For your amusement: https://github.com/codemix/ts-sql
There are a bunch of more practical takes that codegen types from your database and generate types for your queries, eg: https://github.com/adelsz/pgtyped
To me the second approach seems much more pragmatic because you don’t need to run a SQL parser in a fairly potato interpreter on every build
-
ORMs are nice but they are the wrong abstraction
ORMs suck, but raw SQL embedded in your code sucks too.
This might be good time to plug my TypeScript non-ORM: https://jawj.github.io/zapatos/.
I should say I also like what I've seen of https://kysely.dev/ and https://pgtyped.dev/.
-
An effective way to build a heavy CRUD Rest API?
Thank you for suggestions they helped me finding what I was looking for. I will either pick kysely or https://pgtyped.dev/, but first I will do some tests. Thanks!
- PostgresJs: The Fastest full featured PostgreSQL client for Node.js and Deno
-
compile-time SQL validations and type generation in TypeScript & Node
Cool. How does this compare to SafeQL, PgTyped, and Postgres language server ?
-
Petrol: embedding a type-safe SQL API in OCaml using GADTs
I would instead rely on code generation like https://github.com/adelsz/pgtyped, because the embedded type-safe SQL will never fully cover all the features of vanilla SQL, for example Common Table Expression (CTE), window functions etc.
-
Deno 1.33: Deno 2 is coming
There's pgtyped, which I believe does almost the same as sqlc
https://github.com/adelsz/pgtyped
-
Kysely: TypeScript SQL Query Builder
For Postgres there is https://github.com/adelsz/pgtyped, sounds pretty much like what you describe?
-
Is postgresql-typed a good starting library for a production application?
Avoiding the cost of learning EDSL that many Haskell DB libraries provide, I found out that only postgresql-typed and postgresql-simple allow to write only raw SQL queries easily. As I extensively use pgtyped for production Node.js application, I am thinking about using postgresql-typed. While I could find many resources for postgresql-simple, the same cannot be said try for postgresql-typed.
-
This package is so underrated.
I would highly recommend trying out pgTyped if you want typesafe queries with postgres. It's fantastic!
What are some alternatives?
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
slonik - A Node.js PostgreSQL client with runtime and build time type safety, and composable SQL.
Knex - A query builder for PostgreSQL, MySQL, CockroachDB, SQL Server, SQLite3 and Oracle, designed to be flexible, portable, and fun to use.
kysely - A type-safe typescript SQL query builder [Moved to: https://github.com/kysely-org/kysely]
TypeORM - ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
kysely-data-api
typesafe-query-builder - Generate SQL queries leveraging type inference and Postgres Json functions
ts-sql-query - Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.
kysely - A type-safe typescript SQL query builder