@egodigital/express-controllers
Advanced tools
Comparing version 1.1.1 to 1.2.0
# Change Log (@egodigital/express-controllers) | ||
## 1.2.0 | ||
* added `serializer` property to [ControllerRouteOptions](https://egodigital.github.io/express-controllers/interfaces/_index_.controllerrouteoptions.html) interface | ||
## 1.1.1 | ||
@@ -4,0 +8,0 @@ |
@@ -77,2 +77,6 @@ /** | ||
/** | ||
* A custom response serializer for a route. | ||
*/ | ||
serializer?: ResponseSerializer; | ||
/** | ||
* Additional middleware(s) for the route. | ||
@@ -79,0 +83,0 @@ */ |
@@ -65,2 +65,3 @@ "use strict"; | ||
const REQUEST_VALIDATORS = Symbol('REQUEST_VALIDATORS'); | ||
const RESPONSE_SERIALIZER = Symbol('RESPONSE_SERIALIZER'); | ||
/** | ||
@@ -358,2 +359,3 @@ * A basic controller. | ||
VALUE[REQUEST_ERROR_HANDLER] = opts.onError; | ||
VALUE[RESPONSE_SERIALIZER] = opts.serializer; | ||
VALUE[INITIALIZE_ROUTE] = function (controller) { | ||
@@ -581,4 +583,8 @@ if (!_.isNil(BASE_FUNC)) { | ||
if (useSerializer) { | ||
const SERIALIZER = controller.__serialize; | ||
if (_.isNil(SERIALIZER)) { | ||
let serializer = handler[RESPONSE_SERIALIZER]; | ||
if (_.isNil(serializer)) { | ||
// default of controller | ||
serializer = controller.__serialize; | ||
} | ||
if (_.isNil(serializer)) { | ||
// no serializer | ||
@@ -593,3 +599,3 @@ result = HANDLER_RESULT; | ||
}; | ||
result = yield Promise.resolve(SERIALIZER.apply(controller, [ | ||
result = yield Promise.resolve(serializer.apply(controller, [ | ||
CTX | ||
@@ -596,0 +602,0 @@ ])); |
{ | ||
"name": "@egodigital/express-controllers", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"description": "Sets up controllers for Express framework.", | ||
@@ -5,0 +5,0 @@ "author": "e.GO Digital GmbH, Aachen, Germany", |
72597
1500