# Extension points — nestjs/nest

> Canonical page: https://codevetter.com/unpack/nest/extension-points

# Extension points — nestjs/nest

Scanned commit 35142c3eca8edaaf6abc5984d915da2fbd458aa2 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Nest offers explicit extension seams through module metadata, decorators, provider tokens, adapters, and contextual request processing. Discovery APIs expose metadata-indexed provider and controller collections. Testing overrides reuse production scanning and instantiation rather than requiring a separate application architecture. Transport selection and optional integration modules provide additional runtime composition boundaries.
- Root modules may be classes, dynamic modules, forward references, or promises; the scanner merges dynamic imports into reflected imports. — [packages/core/nest-factory.ts#L39-48](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/nest-factory.ts#L39-L48) [packages/core/scanner.ts#L119-146](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/scanner.ts#L119-L146)
- A custom HTTP implementation plugs into NestFactory.create through AbstractHttpAdapter and the HttpServer contract. — [packages/core/nest-factory.ts#L84-96](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/nest-factory.ts#L84-L96) [packages/core/adapters/http-adapter.ts#L16-40](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/adapters/http-adapter.ts#L16-L40)
- Context creators assemble pipes, guards, and interceptors for controller methods using module and request-context identifiers. — [packages/core/router/router-execution-context.ts#L128-148](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/router/router-execution-context.ts#L128-L148)
- ParameterDecoratorOptions accepts a StandardSchemaV1 and pipe list; assignMetadata normalizes both options and legacy positional signatures. — [packages/common/decorators/http/route-params.decorator.ts#L12-25](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/common/decorators/http/route-params.decorator.ts#L12-L25) [packages/common/decorators/http/route-params.decorator.ts#L48-68](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/common/decorators/http/route-params.decorator.ts#L48-L68)
- DiscoveryService.createDecorator creates a metadata key and records discoverable class links; getProviders and getControllers can select by metadata key. — [packages/core/discovery/discovery-service.ts#L59-97](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/discovery/discovery-service.ts#L59-L97) [packages/core/discovery/discovery-service.ts#L107-121](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/discovery/discovery-service.ts#L107-L121)
- TestingModuleBuilder exposes provider, module, pipe, guard, interceptor, and filter overrides plus a mocker callback. — [packages/testing/testing-module.builder.ts#L70-101](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/testing/testing-module.builder.ts#L70-L101)
- Testing overrides support useValue, useFactory, and useClass replacements applied through container.replace. — [packages/testing/testing-module.builder.ts#L154-169](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/testing/testing-module.builder.ts#L154-L169)
- ValidationPipe accepts injected validator and transformer implementations and a custom exceptionFactory. — [packages/common/pipes/validation.pipe.ts#L32-41](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/common/pipes/validation.pipe.ts#L32-L41) [packages/common/pipes/validation.pipe.ts#L102-129](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/common/pipes/validation.pipe.ts#L102-L129)
- ServerFactory is the built-in transport dispatch table; application MessagePattern decorators define transport-level handlers. — [packages/microservices/server/server-factory.ts#L20-41](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/microservices/server/server-factory.ts#L20-L41) [sample/03-microservices/src/math/math.controller.ts#L17-20](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/sample/03-microservices/src/math/math.controller.ts#L17-L20)
- Hybrid applications can attach microservices sharing the container and optionally inherit HTTP application configuration. — [packages/core/nest-application.ts#L329-355](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/core/nest-application.ts#L329-L355)
- StreamableFile exposes replaceable error-handler and error-logger callbacks for application-specific streaming policy. — [packages/common/file-stream/streamable-file.ts#L76-96](https://github.com/nestjs/nest/blob/35142c3eca8edaaf6abc5984d915da2fbd458aa2/packages/common/file-stream/streamable-file.ts#L76-L96)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
