Skip to content

System Overview

concept
4 min readUpdated

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.

SubsystemDepended on byEntitiesStarts at
Core6285
moduleKey
,
moduleName
Common5353
DefaultValuePipe
,
ParseFilePipe
Microservices4435
normalizedPattern
,
route
Dogs111
DogsController
,
create
Host110
HostController
,
greeting
Host Array110
HostArrayController
,
greeting
Auth19
AuthController
,
signIn
Orders18
OrdersController
,
create
Integration0188
AppController
,
getGlobals
Sample0449
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.

PatternWhereCountExamples
*.module.ts
across the repository176
a.module.ts
,
b.module.ts
,
c.module.ts
,
app.module.ts
*.interface.ts
across the repository140
cat.interface.ts
,
type.interface.ts
,
file.interface.ts
,
edge.interface.ts
*.service.ts
across the repository114
bar.service.ts
,
foo.service.ts
,
app.service.ts
,
cats.service.ts
*.controller.ts
across the repository97
app.controller.ts
,
rmq.controller.ts
,
host.controller.ts
,
cats.controller.ts
*.exception.ts
across the repository55
gone.exception.ts
,
http.exception.ts
,
runtime.exception.ts
,
conflict.exception.ts
*.decorator.ts
across the repository44
sse.decorator.ts
,
ctx.decorator.ts
,
ack.decorator.ts
,
bind.decorator.ts

Was this page helpful?

Download as PDF
System Overview — NestJS head-to-head