v5.0.0-beta.0
kamilmysliwiec
released this
22 Apr 10:13
·
16156 commits
to master
since this release
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