Skip to content

Releases: nestjs/nest

v5.4.1

30 Nov 12:02
Compare
Choose a tag to compare

Bug Fixes

  • core: e2e tests are failing due to HTTP_SERVER_REF #1160
  • core: support using direct injectable instance #928
  • core: symbol in the module exports array causes fatal error #1246

v.5.4.0

19 Oct 12:29
Compare
Choose a tag to compare

Features

  • common: update axios to latest version #1152
  • core: add module context name to UnknownDependenciesMessage #1143
  • core: property-based injection support #1172
  • core: dynamical providers feature ModuleRef.create() #1172
  • microservices: RabbitMQ support #1170
  • microservices: support queues in Nats transport #1175

Bug Fixes

  • core: allow exporting abstract providers #1208

v5.3.12

17 Oct 20:43
Compare
Choose a tag to compare

Bug Fixes

  • core: change context initial arguments #1188
  • core: DI symbol as token #1177
  • websockets: WsAdapter close function error #1156
  • websockets: send a message only to a client in open state (WsAdapter) #1183

v5.3.11

05 Oct 13:10
Compare
Choose a tag to compare

Bug Fixes

  • core: make use of default assignments (DI) #1151
  • core: circular structures for dynamic modules #1142
  • websockets: handle unexpected WS client exception #1144

v5.3.0

31 Aug 11:16
Compare
Choose a tag to compare

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 within ExpressAdapter #1017

Improvements

  • core: injector improvements (mainly circular dependencies)
  • websockets: improve adapters (WsAdapter and IoAdapter)

v5.2.0

22 Aug 14:29
Compare
Choose a tag to compare

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

  • core: allow using single Logger instance #926
  • core: hierarchical module resolution #938
  • microservices: use @grpc-loader withing gRPC transport #980
  • testing: recursively trigger OnModuleDestroy hook for testing module #899

v5.1.0

05 Jul 12:52
Compare
Choose a tag to compare

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 the MiddlewareBuilder (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

  • common: expose axiosRef from HttpService#842
  • common: make MiddlewareFunction generic #778
  • microservices: propagate internal gRPC error #844
  • testing: type signature for TestModule.get() is too restrictive #772

v5.0.1

26 May 10:43
Compare
Choose a tag to compare

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

13 May 09:11
Compare
Choose a tag to compare

Features

  • core: support async lifecycle hooks (OnModuleInit and OnModuleDestroy) #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 and typeorm 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 (use MiddlewareFunction)
  • core: deprecate modules: [] property (use imports: [] instead)
  • core: deprecate components: [] property (use providers: [] instead)
  • core: removed MiddlewaresConsumer (use MiddlewareConsumer)

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

28 Apr 13:27
Compare
Choose a tag to compare

5.0.0-beta.4

Bug Fixes

  • core: param pipes aren't working correctly #592
  • microservices: unnecessary modules required #594

Improvements

  • all: upgrade RxJS version (v6.0.0)