Open Source | NestJS + Prisma ORM + TypeScript | REST API starter

Tocmai am terminat prima versiune a unui starter/boilerplate pentru un REST API, bazat pe Nest framework + Prisma ORM + TypeScript.

De altfel, acest stack il consider ca fiind cam cea mai buna optiune, la ora actuala, din ecosistemul Node.js, ca si solutie completa, scalabila, developer-friendly pentru un REST API.

Am gandit acest starter pentru a nu fi bloated ci mai degraba foarte lightweight, dar in acelasi timp sa fie si production-ready:

  • Error Handling (Exception Filters)
  • Logging System
  • DB Seeds/Migrations
  • Built-in AuthModule, using JWT. Route Guards
  • Model Events Listener (onCreated, …)
  • Deployable. CI/CD pipeline using Github Actions.
  • Advanced ESLint/TSLint config. (e.g: auto-fix will remove unused imports)
  • Shared services/constants/helpers
  • Middlewares/Interceptors implementation example.

Am facut cu ceva timp in urma un alt starter/boilerplate, doar ca pe TypeORM.
Dupa numeroaselor probleme cu acest package si dupa un developer-friendliness scazut, am decis, de curand, ca a venit timpul sa caut o alta solutie. Si am facut asta dupa ce am folosit TypeORM in proudction, pe vreo 5 proiecte. Si-a facut treaba, dar era mult loc de mai bine.

Astfel, am dat peste Prisma care pare sa fie ce aveam eu nevoie, adica mai reliable, cu un Query Language mult mai extesibil (incerc sa evit QueryBuilder-urile pe cat pot de mult) si mult mai developer-friendly.

Prisma poate fi folosit si cu GraphQL, dar pentru moment l-am pregatit ca si REST API.

Feedback-ul este foarte apreciat!

Multumesc :slight_smile:

14 Likes

Salut,
Foarte misto starter kitul. Destul de fain facut. O sa revin cu un feedback mai amanuntit.

Mie personal nu imi place deloc nest, stie prea multe pentru un microserviciu, dar nu e un framework adevarat cu chiar tot ce trebuie, are o singura pagina legata de testare. Vad din start o problema cu testarea daca vrei sa faci mocking cu seeding/fixtures automat dupa type ca si cu autofixture/kotlinfixture. (E.g creezi un fixture cu un type si automat sa iti dea test data in test)
Prisma e fain si am in plan sa il incerc intr-un proiect, totusi am citit recent cateva chestii despre Hasura si Prisma si majoritatea oamenilor au mentionat Postgraphile, care e creat de o familie sot si sotie. Ceea ce mi-a atras atentia e ca optimizeaza query-urile de SQL si nu se mai ridica problema de N+1 queries.