Prisma is Database ORM Library for Node.js, Typescript.
Prisma has a concept called "Generator". A generator is an executable program, which takes the parsed Prisma schema as an input and has full freedom to output anything.
The most prominent generator is called prisma-client-js
. It's the ORM Client powering the main TypeScript and JavaScript usage of Prisma from Node.js.
Generators will always be called when you run prisma generate
. However, only the generators mentioned in the schema.prisma file are being run.
Strongly recommend reading the full article, It's pretty damn good
As a community, developing prisma generators is really hard cause that's a very new concept to us so It's like knowing JS but being exposed to do ML with it for the first time and there is nothing documented about @prisma/sdk (this is done intentionally) which has a very great utilities when developing or testing prisma generators and the only way you can get started is by looking at other generators code which might be useful to get you started.
I'm really obsessed with this architecture that Prisma Client is built on and I can see a bright future for Prisma Generators from the community to integrate Prisma nicely with different frameworks or make tools that can beneift from Prisma models.
But unfortunately I didn't have a smooth experience developing my prisma generator.
So I created this CLI to encourage developers to make their own prisma generators to have a smooth experience with all of the annoying repetitive things carried away like: getting started boilerplate, publishing, testing the gen locally by running prisma generate
, ..etc
Also Created a blog on dev.to where we're gonna be discussing the hello world prisma generator together that this CLI has setup for you and the different concepts you'll come across when developing prisma generators, Check It out here
Answer the prompt questions to setup your project, The project setup will be based on your answers.
npx create-prisma-generator
Your environment will have everything you need to build your prisma generator like an elite open-source maintainer:
- Hello World Prisma Generator.
- Typescript Support.
- JavaScript setup with babel to enable the usage of the latest JS features.
- Automatic publishing workflow with Github Actions.
- Workspace setup for testing the generator locally using
prisma generate
. - Scripts for development, building, packaging and testing.
- Support for most package-managers
yarn
,pnpm
andnpm
. - Automatic semantic release with safety in mind using commitlint & husky to validate your commit messages.
- Test environment using Jest with an example & fixtures to help you get started.
- Dependabot for keeping dependencies up to date.
Read Architecture.md to understand how everything is working.
The Create Prisma Generator community can be found on GitHub Discussions, where you can ask questions, suggest ideas, and share your projects.
We'll be very thankful for all your contributions, whether it's for helping us find issues in our code, highlighting features that're missing, writing tests for uncovered cases, or contributing to the codebase.
Read the Contributing guide to get started.