zapatos
docs
Our great sponsors
zapatos | docs | |
---|---|---|
4 | 5 | |
1,217 | 950 | |
- | 0.6% | |
7.3 | 9.7 | |
10 days ago | 4 days ago | |
TypeScript | MDX | |
GNU General Public License v3.0 or later | Apache License 2.0 |
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.
zapatos
- Zapatos: Zero-Abstraction Postgres for TypeScript
-
Announcing a new TypeScript ORM
Requiring the user to define model classes for the "ORM" is a massive pain in large codebases and requiring the user to maintain these is just too much boilerplate. Seems extremely bloated compared to the simplicity of how the shortcuts are implemented in Zapatos or similar libraries where 90% of the code is compiled away for production.
-
Prisma ORM: how to use the great database mapping package
Take a look at https://github.com/gajus/slonik and https://github.com/jawj/zapatos
-
The complete guide to working with strings in modern JavaScript
I’m surprised to see no mention of tagged literals, a much more complex version of template literals. For users they may seem ~like a function call without parentheses. But they do quite a bit more.
Short version: they accept an array of raw substrings and a variadic set of arguments corresponding to the runtime values provided in template positions, each positional value corresponding following the raw string preceding it.
That raw array is more than what it seems, it also has a getter of raw string values for the template expressions. This is what String.raw (also not mentioned) uses to treat those arguments essentially the same way an untagged template literal would.
It’s an odd design/interface but it can be used to do some pretty cool stuff. For example, Zapatos[1], a type-safe SQL library for TypeScript.
My only complaints:
- I can’t think of a real reason for it to be variadic, and this makes authoring them a little more error prone. You should be able to expect one array of strings with a length N, and one array of (type checkable/inferrable) values with a length N-1.
2. Likewise I can’t think of a real reason for the raw values to be bolted onto a weird array subclass. It could just as easily have been an iterable third argument.
docs
-
Show HN: I wrote a book about UI [pdf]
The syntax plugins for Prisma ORM auto-format their schema files in a similar way [1]. It bothers me so much that I can't bring myself to use their solution - which I realise is incredibly petty :)
[1] https://github.com/prisma/docs/blob/main/content/200-concept...
-
Prisma ORM: how to use the great database mapping package
https://github.com/prisma/docs/issues/1652 It's almost as if when you're biased, you only find what you are looking for.
-
How the F**** does anyone use Prisma in production?
Ha, thanks a lot for catching this, just fixed it ✅
-
Frustrated about ORMs
That's fair! I'm actually with you that proper documentation contributes a lot to a positive developer experience and while it seems like a detail, I totally understand how this feels off putting! I've created an issue for this forwarded it to our docs team to get this fixed very soon. Thanks again for reporting!
-
PERN stack with Typescript?
What exactly do you mean with a bulk API? As of now, Prisma provides updateMany and deleteMany operations. There's also the $transaction method which you can use for bulk creates and other bulk operations (plus we're also working on extending the Prisma Client API, e.g. with `createMany operations).
What are some alternatives?
MikroORM - TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases.
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.
orchid-orm - Orchid ORM
posthog.com - Official docs, website, and handbook for PostHog.
ts-mysql-plugin - A typescript language service plugin that gives superpowers to SQL tagged template literals.
.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
nestjs-auth-graphql-mikroorm-starter - A NestJS boilerplate with authentication, GraphQL and MikroORM.
grapheme-splitter - A JavaScript library that breaks strings into their individual user-perceived characters.
nestjs-auth-graphql-starter - NestJS starter template with GraphQL and PassportJS authentication.