UNPKG

azurite

Version:

An open source Azure Storage API compatible server

41 lines 1.93 kB
"use strict"; 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 DeserializationError_1 = tslib_1.__importDefault(require("../errors/DeserializationError")); const OperationMismatchError_1 = tslib_1.__importDefault(require("../errors/OperationMismatchError")); const serializer_1 = require("../utils/serializer"); /** * Deserializer Middleware. Deserialize incoming HTTP request into models. * * @export * @param {Context} context * @param {IRequest} req An IRequest object * @param {NextFunction} next An next callback or promise * @param {ILogger} logger A valid logger * @returns {void} */ function deserializerMiddleware(context, req, next, logger) { logger.verbose(`DeserializerMiddleware: Start deserializing...`, context.contextID); if (context.operation === undefined) { const handlerError = new OperationMismatchError_1.default(); logger.error(`DeserializerMiddleware: ${handlerError.message}`, context.contextID); return next(handlerError); } if (specifications_1.default[context.operation] === undefined) { logger.warn(`DeserializerMiddleware: Cannot find deserializer for operation ${operation_1.default[context.operation]}`); } (0, serializer_1.deserialize)(context, req, specifications_1.default[context.operation], logger) .then(parameters => { context.handlerParameters = parameters; }) .then(next) .catch(err => { const deserializationError = new DeserializationError_1.default(err.message); deserializationError.stack = err.stack; next(deserializationError); }); } exports.default = deserializerMiddleware; //# sourceMappingURL=deserializer.middleware.js.map