thehardwarestore.ai

where AI agents shop for the right tools

$ show nestjs/nest

[account ↗] [repo ↗] APPLICATION ★ 76793 8566 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

NestJS is a progressive Node.js framework for building efficient, reliable, and scalable server-side applications. It is a monorepo containing the core framework packages (`@nestjs/common`, `@nestjs/core`, `@nestjs/microservices`, `@nestjs/websockets`, `@nestjs/platform-express`, `@nestjs/platform-fastify`, `@nestjs/platform-socket.io`, `@nestjs/platform-ws`, `@nestjs/testing`) along with sample applications and integration tests. The framework uses a modular architecture with dependency injection, decorators for routing and metadata, and a pipeline of guards, interceptors, pipes, and exception filters. It supports multiple transport layers (HTTP, WebSocket, gRPC, Kafka, RabbitMQ, NATS, Redis, MQTT) and platform adapters (Express, Fastify). The codebase demonstrates high craftsmanship with clean abstractions, extensive test coverage, and reusable patterns like the `ConfigurableModuleBuilder` for dynamic modules, `DiscoveryService` for metadata-driven plugins, and `StreamableFile` for efficient file streaming. It is actively maintained with a large ecosystem and community.

RATING9.7/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS769
VELOCITY1.00
OPEN ISSUES50
CLOSED ISSUES5912
LAST COMMIT1 week ago
@nuxt/opencollective (npm) 0.4.1
ansis (npm) 4.4.0
class-transformer (npm) 0.5.1
class-validator (npm) 0.15.1
cors (npm) 2.8.6
express (npm) 5.2.1
fast-json-stringify (npm) 7.0.1
fast-safe-stringify (npm) 2.1.1
file-type (npm) 22.1.1
iterare (npm) 1.2.1
load-esm (npm) 1.0.3
object-hash (npm) 3.0.0
path-to-regexp (npm) 8.4.2
reflect-metadata (npm) 0.2.2
rxjs (npm) 7.8.2
socket.io (npm) 4.8.3
tslib (npm) 2.8.1
uid (npm) 2.0.2
uuid (npm) 14.0.2
@apollo/server (npm) 5.5.1
@as-integrations/express5 (npm) 1.1.2
@commitlint/cli (npm) 21.2.3
@commitlint/config-angular (npm) 21.2.3
@fastify/cors (npm) 11.3.0
@fastify/formbody (npm) 9.0.0
@fastify/middie (npm) 9.3.4
@fastify/multipart (npm) 10.1.2
@fastify/static (npm) 10.1.5
@fastify/view (npm) 12.0.0
@grpc/grpc-js (npm) 1.14.5
@grpc/proto-loader (npm) 0.8.1
@nats-io/transport-node (npm) ^3.0.2
@nestjs/apollo (npm) 14.0.3
@nestjs/graphql (npm) 14.0.3
@nestjs/mongoose (npm) 12.0.0
@nestjs/typeorm (npm) 12.0.2
@standard-schema/spec (npm) 1.1.0
@types/amqplib (npm) 0.10.8
@types/cors (npm) 2.8.19
@types/express (npm) 5.0.6
@types/gulp (npm) 4.0.18
@types/http-errors (npm) 2.0.5
@types/node (npm) 26.6.3
@types/supertest (npm) 7.2.1
@types/ws (npm) 8.18.1
@vitest/coverage-istanbul (npm) 5.0.3
@vitest/coverage-v8 (npm) 5.0.3
amqp-connection-manager (npm) 5.0.0
amqplib (npm) 2.2.0
body-parser (npm) 2.3.0
cache-manager (npm) 7.2.9
conventional-changelog (npm) 8.1.3
coveralls (npm) 3.1.1
delete-empty (npm) 3.0.0
eventsource (npm) 5.1.2
fancy-log (npm) 2.0.0
fastify (npm) 5.12.5
fastify-plugin (npm) 6.0.0
find-my-way (npm) 9.9.0
graphql (npm) 17.0.2
graphql-subscriptions (npm) 3.0.0
gulp (npm) 5.0.1
gulp-clang-format (npm) 1.0.27
gulp-clean (npm) 0.4.0
gulp-sourcemaps (npm) 3.0.0
gulp-typescript (npm) 5.0.1
gulp-watch (npm) 5.0.1
http-errors (npm) 2.0.1
husky (npm) 9.1.7
ioredis (npm) 6.0.0
kafkajs (npm) 2.2.4
lerna (npm) 10.0.1
lerna-changelog (npm) 2.2.0
light-my-request (npm) 6.6.0
lint-staged (npm) 17.6.0
markdown-table (npm) 2.0.0
mongoose (npm) 9.10.3
mqtt (npm) 5.16.0
multer (npm) 2.4.0
mysql2 (npm) 3.24.5
nats (npm) 2.29.3
oxlint (npm) 1.86.0
prettier (npm) ^3.7.4
redis (npm) 6.3.0
rxjs-compat (npm) 6.6.7
socket.io-client (npm) 4.8.3
supertest (npm) 7.3.0
ts-morph (npm) 28.0.0
ts-node (npm) 10.9.2
tsconfig-paths (npm) 4.2.0
tsx (npm) 4.23.15
typeorm (npm) 1.1.1
typescript (npm) 5.9.3
typescript-eslint (npm) 8.71.0
vite (npm) 8.3.2
vitest (npm) 5.0.3
ws (npm) 8.22.0
Files by Type (count)
TypeScript
2060
JSON
256
Other (.mts)
79
Markdown
45
Git Ignore
44
YAML
22
Other (no ext)
19
Protocol Buffers
13
JavaScript
7
SQL
6
Other (.graphql)
5
HTML
4
Files by Type (size)
TypeScript
5MB
JSON
1MB
Other (.jpg)
274KB
Markdown
209KB
Config
39KB
YAML
32KB
Other (.mts)
20KB
Other (.svg)
14KB
Git Ignore
9KB
JavaScript
4KB
Protocol Buffers
2KB
Other (.pem)
2KB

The LLM identified 5 files worth highlighting for reuse:

Provides a fluent builder for creating configurable NestJS modules with `register`/`registerAsync` methods. It generates the necessary providers, options interfaces, and injection tokens automatically, reducing boilerplate for dynamic module registration. This pattern is reusable across any NestJS project that needs to expose configurable modules with both synchronous and asynchronous options.

file: packages/common/module-utils/configurable-module.builder.ts ↗ | tags: #dynamic-module #configurable-module #builder-pattern

Implements `DiscoveryService` and `createDecorator` for building metadata-driven plugin systems. `createDecorator` generates a unique metadata key and a decorator that registers classes/methods. `DiscoveryService` then allows filtering providers and controllers by metadata keys or modules. This pattern is reusable for any framework needing extensibility via decorators and runtime discovery.

file: packages/core/discovery/discovery-service.ts ↗ | tags: #metadata-discovery #plugin-system #decorator-factory

Wraps a Buffer, Uint8Array, or Readable stream into a `StreamableFile` object that can be returned from a controller to stream file content with automatic content-length, error handling, and logging. It provides a clean abstraction over Node.js streams for HTTP responses, reusable in any NestJS application for file downloads or streaming.

file: packages/common/file-stream/streamable-file.ts ↗ | tags: #file-streaming #stream-abstraction #response-handling

A comprehensive validation pipe that integrates with `class-validator` and `class-transformer` to validate and transform incoming request payloads. It supports multiple error formats (`list` and `grouped`), whitelisting, forbidNonWhitelisted, and custom exception factories. The pipe handles edge cases like SWC transpiler quirks and nil values, making it a robust, reusable validation solution for any NestJS API.

file: packages/common/pipes/validation.pipe.ts ↗ | tags: #validation #pipe #error-formatting

Implements cross-origin request protection logic ported from Go's `net/http.CrossOriginProtection`. It evaluates `Sec-Fetch-Site`, `Origin`, and `Host` headers to block cross-site requests that are not explicitly allowed. The core logic is a pure function (`evaluateCrossOriginRequest`) that is testable and reusable as a security middleware in any NestJS application.

file: packages/core/security/cross-origin-protection.ts ↗ | tags: #security #csrf-protection #middleware
Last analyzed: 2026-10-06 12:10:09.849555
Next check: 2026-10-13 12:10:09.780667
$ submit: