- Add support for wildcard "all" routes (ref [#536])
- Controller inheritance - Added missing tests, code samples, and updated documentation (ref [#578][#301])
- Added a useResponseClassTransformer global option (ref [#329])
- Through [#329], it should now be possible to use classTransformer only for input (ref [#179])
- Added support for controller inheritance (ref [#147])
- Update all dependencies and changed it to use npm auto-update patches and minor versions (ex.: "class-validator": "^0.12.2", instead of "class-validator": "0.12.2" (ref [#550])
- Updated project tooling (ref [##618])
- Input-validation bypass vulnerability (ref [#518])
- Fixed issue that would cause multiple route executions per request (ref [#568])
- Fixed export of SessionParam at index (ref [#526])
- Through [#536], it should now prevent conflicts in routes names (ref [#547])
- Through [#568], it should now prevent a single request triggering multiple route executions that would cause Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client issue. (ref [#491])
- Fixed order of global interceptors (ref [#543])
- Fixed incorrect handling of rejected promises from Middleware.use() (ref [#438])
- Through [#329], it should fix performance issue with big json result (ref [#226])
- Through [#329], it should fix problem with mongoose model serialization (ref [#149])
- Local ValidationOptions are not overwriting global defaults (ref [#618])
- Added TypeDI service decorator to example in README (ref [#643])
- Translate document to Chinese (ref [#574])
- Fix typo in README (ref [#571])
- Add another example for using the response directly (ref [#546])
- class-transformer and class-validator are now peer dependencies.
- extract generic
@Session()
deocorator into@SessionParam()
and@Session()
(ref [#335][#348][#407]) - restore/introduce
@QueryParams()
and@Params()
missing decorators options (ref [#289][#289]) - normalize param object properties (for "queries", "headers", "params" and "cookies"), with this change you can easily validate query/path params using
class-validator
(ref [#289][#289]) - improved params normalization, converting to primitive types is now more strict and can throw ParamNormalizationError (e.g. when number is expected but an invalid string (NaN) has been received) (ref [#289][#289])
- feat(ErrorHandling): add support for custom toJSON method in errors (ref #325)
- fixed inconsistent roles parameter in authorizationChecker (ref #308)
- fixed bugs with undefined result code behaviour
- fixed bugs with undefined result code behaviour
- fixed bugs with undefined result code behaviour
- Support for returning Buffer and streams from action handler (controller's method) (ref #285)
- Custom driver support (ref #276)
- Directly calling response bug (ref #286)
- Missing parameter in @BodyParam error message (ref #284)
- Sync and async auth checker bug (ref (ref #283)
- Handling different content-type responses in JsonController (ref #277)
- Using
@Authorization
decorator with Koa caused 404 responses (ref #240) - Allow throwing custom errors in
authorizationChecker
(ref #233) - check auth permissions before accepting files for upload (ref #251)
- some routing-controllers options has been changed and renamed
- returned validation error value signature has changed
- controllers and middlewares now can be specified in routing-controllers options
MiddlewareInterface
was removed and insteadExpressMiddlewareInterface
orKoaMiddlewareInterface
should be usedErrorMiddlewareInterface
was renamed toExpressErrorMiddlewareInterface
- per-controller and per-action middlewares used in
@UseBefore
and@UseAfter
now should not be marked with@Middleware
decorator @MiddlewareGlobalBefore()
and@MiddlewareGlobalAfter()
were removed and instead new signatures should be used:@Middleware({ type: "before" })
and@Middleware({ type: "after" })
- named some decorator parameter names
- added few new decorators to get all parameters like
@QueryParams
,@Params
,@HeaderParams
etc. - added
@Authorized
and@CurrentUser
decorators - added new
@Ctx
decorator to use context with koa @NullResultCode
has been renamed to@OnNull
, now supports error classes@UndefinedResultCode
has been renamed to@OnUndefined
, now supports error classes@EmptyResultCode
has been removed. Use@OnUndefined
decorator instead and return concrete types in your controllers.- added ability to create custom decorators
- enabled validation by default
- multiple bug fixes
- codebase refactoring
- removed
JsonResponse
andTextResponse
decorators
- added integration with
class-transform-validator
for deserialization and auto validation request parameters
- made interceptors to support promises
- added interceptors support
- middleware and error handlers support
- everything packed into "routing-controllers" main export
- added few more new decorators
- fixed multiple issues with param decorators
- fixed multiple bugs
- refactored core
- removed
parseJson
from@Body
decorator - removed
ActionOptions
- removed
responseType
from action options and added@JsonResponse
and@TextResponse
decorators
- renamed package from
controllers.ts
torouting-controllers
- added integration with
constructor-utils
for serialization and deserialization