postgres-typed
pgtyped
postgres-typed | pgtyped | |
---|---|---|
5 | 34 | |
26 | 2,815 | |
- | - | |
0.0 | 8.7 | |
over 1 year ago | about 4 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.
postgres-typed
-
Kysely: TypeScript SQL Query Builder
This is really cool, will look into using it in future projects!
I also made a tool (https://github.com/vramework/schemats) that generates the types directly from the db, which means whenever you do a DB migration your database types automatically update. Was forked from the original schemats library a couple years ago.
I also created a lightweight library ontop of pg that is less of a query builder and more of a typed CRUD + SQL for non trivial queries (https://github.com/vramework/postgres-typed). Most queries I deal with in a day to day is usually crud so I find it a little easier, but it's much less powerful then Kysely! I fall more into the camp of writing complex queries in SQL with small helpers and writing simple ones with util functions and typescript
-
Ask HN: Who Wants to Collaborate?
I'm working on a few projects, from one/two days to platforms.
The first is OS and is a simple nodeJS environment to deploy applications via lambda and express quickly. Sort of like nestJS except less decorators and more functional (https://vramework.io/). I already know of a few other colleagues that rolled their own propriety versions of this to support enterprise and cloud deployments so decided to OS it.
The other OS project is a strongly typed postgres/mysql driver. The idea is to generate typescript definitions directly from postgres (https://github.com/vramework/schemats) and then have a think layer ontop of pg-node that gives you strongly typed queries (https://github.com/vramework/postgres-typed).
An open-source project I spent a few years on the core team is https://deepstream.io/, a realtime-server that allows you to mix and match multiple streaming protocols (mqtt/websocket/others) and allow those clients to talk to each other using pub-sub and records. I'm not longer working for it but wanted to give it a shout out!
On a non OS project, I have been working on an immersive audio platform for a while now. The main goal is to allow users to pick and choose how audio books progress, and also have a live session mode which allows users to record their pulse / answer questions and a few other metrics and associate it with sentences. I pretty much built and deployed all of it but require some advice/brainstorming on how to proceed now. I built it to satisfy an itch when I was practicing shamanism during the first lockdown when I was in-between contracts / taking time off.
I also want to build a simple web-pages strategy game based around eco-education, but don't have the bandwidth . If anyone is interested in mixing together gamification and eco-village building might be a fun conversion to bounce ideas!
All the OS projects above were used to support my personal/a couple professional projects over the last few years.
Email in profile
-
Write an SQL query builder in 150 lines of Python
I agree with your point that adding multiple layers = more attack vectors and abstraction of a really good domain specific language. But what seems to happen on most of the projects I work on is we end up hiding away extremely common logic behind helper functions. It always starts off with SQL and then slowly gets moved into higher level functions that offer a better developer experience.
Shameless plug, but I just posted a library I wrote (for node https://github.com/vramework/postgres-typed/blob/master/READ...) which pretty much is a tiny layer ontop of pg-node (which is query based / with value parameters) and provides small util functions with typescript support derived straight from postgres tables.
In an ideal world (one I think we are getting very close to) I think we will end up having SQL queries validated in our code against the actual DB structure the same way we have any other compilation error. But until then we'll need to rely on tests or helper libraries, and for the purpose of refactoring and development I find the latter more enjoyable (although still far from perfect).
- Show HN: Node Typed Postgres Query Builder
- Show HN: Typed Postgres CRUD Queries
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?
PyPika - PyPika is a python SQL query builder that exposes the full richness of the SQL language using a syntax that reflects the resulting query. PyPika excels at all sorts of SQL queries but is especially useful for data analysis.
slonik - A Node.js PostgreSQL client with runtime and build time type safety, and composable SQL.
sql-athame - Python tool for slicing and dicing SQL
kysely - A type-safe typescript SQL query builder [Moved to: https://github.com/kysely-org/kysely]
sql-assassin - Unfancy node.js SQL builder for ES6
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.
Typesense - Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
vox - Vox language compiler. AOT / JIT / Linker. Zero dependencies
typesafe-query-builder - Generate SQL queries leveraging type inference and Postgres Json functions
deepstream.io - deepstream.io server
kysely - A type-safe typescript SQL query builder