azurite
Version:
An open source Azure Storage API compatible server
32 lines • 1.5 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const operation_1 = tslib_1.__importDefault(require("../artifacts/operation"));
const specifications_1 = tslib_1.__importDefault(require("../artifacts/specifications"));
const OperationMismatchError_1 = tslib_1.__importDefault(require("../errors/OperationMismatchError"));
const serializer_1 = require("../utils/serializer");
/**
* SerializerMiddleware will serialize models into HTTP responses.
*
* @export
* @param {Response} res
* @param {NextFunction} next
* @param {ILogger} logger
* @param {Context} context
*/
function serializerMiddleware(context, res, next, logger) {
logger.verbose(`SerializerMiddleware: Start serializing...`, context.contextId);
if (context.operation === undefined) {
const handlerError = new OperationMismatchError_1.default();
logger.error(`SerializerMiddleware: ${handlerError.message}`, context.contextId);
return next(handlerError);
}
if (specifications_1.default[context.operation] === undefined) {
logger.warn(`SerializerMiddleware: Cannot find serializer for operation ${operation_1.default[context.operation]}`, context.contextId);
}
(0, serializer_1.serialize)(context, res, specifications_1.default[context.operation], context.handlerResponses, logger)
.then(next)
.catch(next);
}
exports.default = serializerMiddleware;
//# sourceMappingURL=serializer.middleware.js.map
;