Nest Js Repo Skeleton (http + Di + Guard + Pipe + Interceptor + Filter).pdf

Nest Js Repo Skeleton + Prisma + PostgreSQL (http + Di + Guard + Pipe + Interceptor + Filter) .pdf

Project Layout

src/
  app.module.ts
  main.ts
  common/
    guards/jwt-auth.guard.ts
    interceptors/logging.interceptor.ts
    pipes/parse-int.pipe.ts
    filters/http-exception.filter.ts
    middleware/request-logger.middleware.ts
  users/
    users.module.ts
    users.controller.ts
    users.service.ts
    dto/create-user.dto.ts
    dto/update-user.dto.ts
    entities/user.entity.ts
    repo/user.repo.ts
  auth/
    auth.module.ts
    auth.service.ts
  graphql/
    users.resolver.ts
  micro/
    micro.module.ts
    micro.client.ts
test/
  users.controller.spec.ts

High-level diagrams

Request/Response pipeline

Client
  │  HTTP
  ▼
[Nest Application]
  │
  ├─(1) Middleware           ← before routing (per module or global)
  │
  ├─(2) Guards               ← canActivate? if false => 403
  │
  ├─(3) Pipes                ← validate/transform params & body
  │
  ├─(4) Interceptors ─────┐  ← before/after handler (logging, mapping, cache)
  │                        │
  ├─(5) Controller handler ├── calls → Service → Repository/DB/Clients
  │                        │
  └─(6) Exception Filters ◄┘  ← catch/shape thrown exceptions

Layer mapping


1) Modules (composition layer)