Releases: nestjs/nest
Releases · nestjs/nest
v5.3.0
Features
- common: caching mechanism - add
CacheModule
module #695 - common: serialization - add
ClassSerializerInterceptor
interceptor - common: add
MulterModule
module - core:
ExternalContextCreator
now supports pipes - websockets: support acknowledgments in socketio
IoAdapter
#982
Bug Fixes
- core: expose valid
HttpServer
withinExpressAdapter
#1017
Improvements
- core: injector improvements (mainly circular dependencies)
- websockets: improve adapters (
WsAdapter
andIoAdapter
)
v5.2.0
Features
- common: provide global config for axios instance
HttpModule.register()
#846 - core: use default exception filter handler on condition (extend core class) #860
- core: add
@Optional()
decorator #847 - core: enhance
ExternalContextCreator
(for 3rd-party libraries purposes) - core: allow ModuleRef to get imported providers (strict/non-strict mode) #832
- core: support DynamicModule in
NestFactory.create[..]()
#671
Bug Fixes
- common: multiple
FileInterceptor
interceptors per class #935 - common: custom decorators shouldn't require "data" parameter #892
- core: fastify & middleware wildcards bug #972
- core: innherited guards not being applied #879
- microservices: NATS subject wrapping no longer messing wildcards up #948
Improvements
v5.1.0
Features
- common:
FileFieldsInterceptor
upload multiple files with different names (multer.fields
) #741 - core: support async dynamic modules #800
- core: exclude routes in the
MiddlewareBuilder
#790 - core: support
RouteInfo
in theMiddlewareBuilder
(restrict middleware to certain request method)
forRoutes(
{ path: 'cats', method: RequestMethod.GET },
{ path: 'cats', method: RequestMethod.POST },
)
Bug Fixes
- common: empty body ends up with 500 error (
ValidationPipe
) #734 - core: the last one of
APP_
providers get registered #812 - core: middleware runs more than once #779
- core: custom decorators not being treated as default ones #765
- microservices: allow gRPC stream cancellation #773
Improvements
v5.0.1
Bug Fixes
- common: add missing
forbidUnknownValues
property (ValidationPipe
) #706 - core: support circular structures in the dynamic module #678
- core: global prefix and middleware incompatibility #718
- core: exceptions are not handled in cascade way #729
- core: validate route path passed in
forRoutes()
#692 - websockets:
@WebSocketGateway
and@SubscribeMessage
do not properly handle errors #683 - testing: fix misssing logger
v5.0.0
Features
- core: support async lifecycle hooks (
OnModuleInit
andOnModuleDestroy
) #569 - core: HTTP server independence, fastify integration (
FastifyAdapter
) - core: allow binding global interceptors, filters, pipes, and guards from any module. Example:
{
provide: APP_INTERCEPTOR,
useClass: LoggerInterceptor,
}
- core:
@UseGuards()
,@UsePipes()
,@UseFilters()
, and@UseInterceptors()
extend metadata, instead of overriding existing one - core: dependency injection everywhere (pipes, filters, interceptors, and guards)
- core: pass
ArgumentsHost
to exception filters (ability to access each argument) - core: pass enhanced
ExecutionContext
to both interceptors and guards (ability to access each argument and execution context) - microservices: rewrite existing transporters (TCP, Redis), provide new strategies: Nats, MQTT, gRPC
- all: improve execution context performance (http, ws, microservices)
Bug Fixes
- common: incorrent
multer
dependency #532 - core: hanging
NestApplicationContext
process #503 - microservices: concurrency issues (both TCP and Redis transporters) #505
Improvements
- all: remove
reflect-metadata
peer dependency #563 - all: upgrade RxJS to 6.0.0
- all: move to Node.js >= 8.9.0 (TypeScript target
es2017
) - core: more descriptive exceptions (circular dependency) #493
- core: Nest container compatible with
useContainer()
(class-validator
andtypeorm
packages) #528 - core: remove static dependencies (webpack compatibility)
- websockets:
@WebSocketGateway()
takes options argument that is passed to socket.io instance #508
Deprecations
- common: deprecate
@Component()
,@Middleware()
,@Interceptor()
,@Pipe()
, and@Guard()
decorators (use@Injectable()
instead) - common: removed
ExpressMiddleware
(useMiddlewareFunction
) - core: deprecate
modules: []
property (useimports: []
instead) - core: deprecate
components: []
property (useproviders: []
instead) - core: removed
MiddlewaresConsumer
(useMiddlewareConsumer
)
Notes
- move from traditional express middleware model: each middleware is solely bounded to a particular path, regardless of the request method
Migration guide: https://docs.nestjs.com/migration-guide
v5.0.0-beta.4
v5.0.0-beta.3
v5.0.0-beta.0
5.0.0-beta.0
Features
- core: support async lifecycle hooks (
OnModuleInit
andOnModuleDestroy
) #569 - core: HTTP server independence, fastify integration (
FastifyAdapter
) - core: allow binding global interceptors, filters, pipes, and guards from any module. Example:
{
provide: APP_INTERCEPTOR,
useClass: LoggerInterceptor,
}
- core:
@UseGuards()
,@UsePipes()
,@UseFilters()
, and@UseInterceptors()
extend metadata, instead of overriding existing one - core: dependency injection everywhere (pipes, filters, interceptors, and guards)
- core: pass
ArgumentsHost
to exception filters (ability to access each argument) - core: pass enhanced
ExecutionContext
to both interceptors and guards (ability to access each argument and execution context) - microservices: improve existing transporters (TCP, Redis), provide new strategies: Nats, MQTT, gRPC
Bug Fixes
- common: incorrent
multer
dependency #532 - core: hanging
NestApplicationContext
process #503 - microservices: concurrency issues (both TCP and Redis transporters) #505
Improvements
- all: remove
reflect-metadata
peer dependency #563 - all: upgrade RxJS (make use of pipeable operators)
- core: more descriptive exceptions (circular dependency) #493
- core: Nest container compatible with
useContainer()
(class-validator
andtypeorm
packages) #528 - core: remove static dependencies (webpack compatibility)
- websockets:
@WebSocketGateway()
takes options argument that is passed to socket.io instance #508
Deprecations
- common: deprecate
@Component()
,@Middleware()
,@Interceptor()
,@Pipe()
, and@Guard()
decorators (use@Injectable()
instead) - core: deprecate
modules: []
property (useimports: []
instead) - core: deprecate
components: []
property (useproviders: []
instead)
Notes
- move from traditional express middleware model: each middleware is solely bounded to a particular path, regardless of the request method
v4.6.6
v4.6.5
Bug Fixes
- common:
File(s)Interceptor
does not populate thrown exception #437 - core:
NestFactory.create()
returnsany
- core: use
ApplicationConfig
withinExternalContextCreator
#434
Improvements
- common:
HttpException
extendsError
- core: make
cors
middleware customizable (enableCors()
,{ cors }
) #457 - microservices:
RpcException
extendsError
- websockets:
WsException
extendsError