# NestJS head-to-head

## Overview

Auto-generated technical documentation for **NestJS head-to-head** — 2831 entities (725 doc comments, 394 classs, 281 interfaces, 231 api endpoints).

## Architecture

```mermaid
flowchart LR
  service_ConsoleLogger_38089336["ConsoleLogger"]
  service_Logger_56f71189["Logger"]
  service_BarService_4c69a33e["BarService"]
  service_FooService_2bfde624["FooService"]
  controller_AppController_38e3c15["AppController"]
  module_AppModule_698988b["AppModule"]
  module_AppModule_25446c3e["AppModule"]
  module_MyWebhookModule_1e865006["MyWebhookModule"]
  module_AppModule_3541c3e4["AppModule"]
  service_AuthGuard_5759b537["AuthGuard"]
  service_DataInterceptor_c8076b7["DataInterceptor"]
  module_RecipesModule_567dcf2["RecipesModule"]
  service_RecipesService_50ffcca6["RecipesService"]
  module_AppModule_76187e70["AppModule"]
  module_AsyncClassApplicationModule_75045ad4["AsyncClassApplicationModule"]
  module_AsyncExistingApplicationModule_65e570a["AsyncExistingApplicationModule"]
  module_AsyncApplicationModule_770a11f7["AsyncApplicationModule"]
  service_CatsRequestScopedService_4eb9ee96["CatsRequestScopedService"]
  service_CatsGuard_5f960eea["CatsGuard"]
  module_CatsModule_4a1670f4["CatsModule"]
  service_CatsService_3b65834a["CatsService"]
  module_ConfigModule_67f1f1a["ConfigModule"]
  service_ConfigService_5fb4643a["ConfigService"]
  module_AppModule_35b2a3f7["AppModule"]
  service_BarService_4c69a33e --> service_FooService_2bfde624
  module_AppModule_25446c3e --> module_MyWebhookModule_1e865006
```

## Modules

- **AppModule**
- **AppModule**
- **MyWebhookModule**
- **AppModule**
- **RecipesModule**
- **AppModule**
- **AsyncClassApplicationModule**
- **AsyncExistingApplicationModule**
- **AsyncApplicationModule**
- **CatsModule**
- **ConfigModule**
- **AppModule**
- **HelloModule**
- **HostModule**
- **HostArrayModule**
- **ApplicationModule**
- **CircularModule**
- **CircularModule**
- **InputModule**
- **CircularPropertiesModule**
- **InputPropertiesModule**
- **CoreInjectablesModule**
- **DefaultsModule**
- **NestDynamicModule**
- **ExportsModule**
- **InjectSameNameModule**
- **InjectModule**
- **AModule**
- **BModule**
- **CModule**
- **MultipleProvidersModule**
- **PropertiesModule**
- **ScopedModule**
- **SelfInjectionProviderModule**
- **SelfInjectionForwardProviderModule**
- **SelfInjectionProviderCustomTokenModule**
- **AppModule**
- **CatsModule**
- **ChatModule**
- **HelloModule**
- **CircularModule**
- **InputModule**
- **CoreModule**
- **DatabaseModule**
- **DefaultsModule**
- **DogsModule**
- **DurableModule**
- **ExternalSvcModule**
- **PropertiesModule**
- **HelperModule**
- **RequestChainModule**
- **UsersModule**
- **AppModule**
- **EagerModule**
- **GlobalModule**
- **LazyModule**
- **RequestLazyModule**
- **TransientLazyModule**
- **ConfigModule**
- **AppModule**
- **ConfigModule**
- **ApplicationModule**
- **IntegrationModule**
- **ApplicationModule**
- **AsyncOptionsClassModule**
- **ConfigModule**
- **AsyncOptionsExistingModule**
- **AsyncOptionsFactoryModule**
- **CatsModule**
- **AppModule**
- **AppModule**
- **AppModule**
- **AppModule**
- **ExpressModule**
- **FastifyModule**
- **AppModule**
- **AppModule**
- **AppModule**
- **DatabaseModule**
- **LongLivingAppModule**
- **UsersModule**
- **ApplicationModule**
- **HelloModule**
- **HelloModule**
- **DurableModule**
- **HelloModule**
- **HelloModule**
- **HelloModule**
- **NestedTransientModule**
- **HelperModule**
- **RequestChainModule**
- **HelloModule**
- **AppModule**
- **AModule**
- **BModule**
- **AsyncApplicationModule**
- **AppModule**
- **AsyncOptionsClassModule**
- **ConfigModule**
- **AsyncOptionsExistingModule**
- **AsyncOptionsFactoryModule**
- **DatabaseModule**
- **PhotoModule**
- **AppModule**
- **ApplicationModule**
- **ClientsModule**
- **MulterModule**
- **AppModule**
- **CatsModule**
- **CoreModule**
- **AppModule**
- **EventsModule**
- **AppModule**
- **MathModule**
- **AppModule**
- **HeroModule**
- **AppModule**
- **UsersModule**
- **AppModule**
- **CatsModule**
- **AppModule**
- **UsersModule**
- **AppModule**
- **AppModule**
- **CatsModule**
- **CoreModule**
- **AppModule**
- **CatsModule**
- **AppModule**
- **CatsModule**
- **OwnersModule**
- **AppModule**
- **PhotoModule**
- **AppModule**
- **CatsModule**
- **DatabaseModule**
- **AppModule**
- **AppModule**
- **EventsModule**
- **AppModule**
- **AppModule**
- **MyDynamicModule**
- **AppModule**
- **AuthModule**
- **UsersModule**
- **AppModule**
- **AppModule**
- **AppModule**
- **PostsModule**
- **PrismaModule**
- **AppModule**
- **RecipesModule**
- **AppModule**
- **AppModule**
- **ConfigModule**
- **AppModule**
- **AudioModule**
- **AppModule**
- **TasksModule**
- **AppModule**
- **AppModule**
- **AppModule**
- **OrdersModule**
- **AppModule**
- **AppModule**
- **PostsModule**
- **AppModule**
- **UsersModule**
- **AppModule**
- **AppModule**
- **PostsModule**
- **AppModule**
- **UsersModule**
- **AppModule**
- **RecipesModule**
- **AppModule**
- **AppModule**
- **AppModule**
- **CatsModule**
- **CoreModule**
- **AppModule**

## Entry Points

- Controller: **AppController** (`integration/cors/src/app.controller.ts`)
- Controller: **ErrorsController** (`integration/hello-world/src/errors/errors.controller.ts`)
- Controller: **HelloController** (`integration/hello-world/src/hello/hello.controller.ts`)
- Controller: **HostController** (`integration/hello-world/src/host/host.controller.ts`)
- Controller: **HostArrayController** (`integration/hello-world/src/host-array/host-array.controller.ts`)
- Controller: **ScopedController** (`integration/injector/src/scoped/scoped.controller.ts`)
- Controller: **AppV1Controller** (`integration/inspector/src/app-v1.controller.ts`)
- Controller: **AppV2Controller** (`integration/inspector/src/app-v2.controller.ts`)
- Controller: **CatsController** (`integration/inspector/src/cats/cats.controller.ts`)
- Controller: **HelloController** (`integration/inspector/src/circular-hello/hello.controller.ts`)
- Controller: **DatabaseController** (`integration/inspector/src/database/database.controller.ts`)
- Controller: **DogsController** (`integration/inspector/src/dogs/dogs.controller.ts`)
- Controller: **DurableController** (`integration/inspector/src/durable/durable.controller.ts`)
- Controller: **ExternalSvcController** (`integration/inspector/src/external-svc/external-svc.controller.ts`)
- Controller: **RequestChainController** (`integration/inspector/src/request-chain/request-chain.controller.ts`)
- Controller: **UsersController** (`integration/inspector/src/users/users.controller.ts`)
- Controller: **LazyController** (`integration/lazy-modules/src/lazy.controller.ts`)
- Controller: **AppController** (`integration/microservices/src/app.controller.ts`)
- Controller: **DisconnectedClientController** (`integration/microservices/src/disconnected.controller.ts`)
- Controller: **GrpcController** (`integration/microservices/src/grpc/grpc.controller.ts`)
- `GET /` → getGlobals
- `GET /sync` → synchronous
- `GET /async` → asynchronous
- `GET /unexpected-error` → unexpectedError
- `GET /hello` → greeting
- `GET /hello/async` → asyncGreeting
- `GET /hello/stream` → streamGreeting
- `GET /hello/local-pipe/:id` → localPipe
- `GET /` → greeting
- `GET /async` → asyncGreeting
- `GET /stream` → streamGreeting
- `GET /local-pipe/:id` → localPipe
- `GET /` → greeting
- `GET /async` → asyncGreeting
- `GET /stream` → streamGreeting
- `GET /local-pipe/:id` → localPipe
- `GET /` → helloWorldV1
- `GET /:param/hello` → paramV1
- `GET /` → helloWorldV2
- `GET /:param/hello` → paramV1
- `POST /cats` → create
- `GET /cats` → findAll
- `GET /cats/:id` → findOne
- `GET /hello` → greeting
- `POST /database` → create
- `GET /database` → findAll
- `GET /database/:id` → findOne
- `PATCH /database/:id` → update
- `DELETE /database/:id` → remove
- `POST /dogs` → create

## Key Components

_The most-referenced entities — start here._

- **forwardRef** (function) — referenced 8×
- **ClientProxy** (class) — referenced 7×
- **GlobalService** (service) — referenced 6×
- **Post** (graphql type) — referenced 6×
- **Reflector** (class) — referenced 5×
- **EagerService** (service) — referenced 5×
- **Cat** (graphql type) — referenced 5×
- **Recipe** (graphql type) — referenced 4×
- **Cat** (graphql type) — referenced 4×
- **Recipe** (graphql type) — referenced 4×

## Subsystems

Ordered by how much of the rest of the system depends on them, not by how much code they
contain. A small module many things import shapes this codebase more than a large one nothing
imports.

| Subsystem | Depended on by | Entities | Starts at |
|---|---|---|---|
| **Core** | 6 | 285 | `moduleKey`, `moduleName` |
| **Common** | 5 | 353 | `DefaultValuePipe`, `ParseFilePipe` |
| **Microservices** | 4 | 435 | `normalizedPattern`, `route` |
| **Dogs** | 1 | 11 | `DogsController`, `create` |
| **Host** | 1 | 10 | `HostController`, `greeting` |
| **Host Array** | 1 | 10 | `HostArrayController`, `greeting` |
| **Auth** | 1 | 9 | `AuthController`, `signIn` |
| **Orders** | 1 | 8 | `OrdersController`, `create` |
| **Integration** | 0 | 188 | `AppController`, `getGlobals` |
| **Sample** | 0 | 449 | `AppController`, `getHello` |

`Core`, `Common`, `Microservices`, `Dogs`, `Host`, `Host Array`, `Orders` depend on no other subsystem here — they are the leaves.

## How this code is named

These conventions cover most of the codebase. Learning them is faster than reading an index —
each one lets you find any member of its family without looking it up.

| Pattern | Where | Count | Examples |
|---|---|---|---|
| `*.module.ts` | across the repository | 176 | `a.module.ts`, `b.module.ts`, `c.module.ts`, `app.module.ts` |
| `*.interface.ts` | across the repository | 140 | `cat.interface.ts`, `type.interface.ts`, `file.interface.ts`, `edge.interface.ts` |
| `*.service.ts` | across the repository | 114 | `bar.service.ts`, `foo.service.ts`, `app.service.ts`, `cats.service.ts` |
| `*.controller.ts` | across the repository | 97 | `app.controller.ts`, `rmq.controller.ts`, `host.controller.ts`, `cats.controller.ts` |
| `*.exception.ts` | across the repository | 55 | `gone.exception.ts`, `http.exception.ts`, `runtime.exception.ts`, `conflict.exception.ts` |
| `*.decorator.ts` | across the repository | 44 | `sse.decorator.ts`, `ctx.decorator.ts`, `ack.decorator.ts`, `bind.decorator.ts` |
