v5.0.0-beta.0
·
18827 commits
to master
since this release
5.0.0-beta.0
Features
- core: support async lifecycle hooks (
OnModuleInitandOnModuleDestroy) #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
ArgumentsHostto exception filters (ability to access each argument) - core: pass enhanced
ExecutionContextto 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
multerdependency #532 - core: hanging
NestApplicationContextprocess #503 - microservices: concurrency issues (both TCP and Redis transporters) #505
Improvements
- all: remove
reflect-metadatapeer dependency #563 - all: upgrade RxJS (make use of pipeable operators)
- core: more descriptive exceptions (circular dependency) #493
- core: Nest container compatible with
useContainer()(class-validatorandtypeormpackages) #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