azurite
Version:
An open source Azure Storage API compatible server
122 lines • 5.67 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const Context_1 = tslib_1.__importDefault(require("./Context"));
const ExpressRequestAdapter_1 = tslib_1.__importDefault(require("./ExpressRequestAdapter"));
const ExpressResponseAdapter_1 = tslib_1.__importDefault(require("./ExpressResponseAdapter"));
const deserializer_middleware_1 = tslib_1.__importDefault(require("./middleware/deserializer.middleware"));
const dispatch_middleware_1 = tslib_1.__importDefault(require("./middleware/dispatch.middleware"));
const end_middleware_1 = tslib_1.__importDefault(require("./middleware/end.middleware"));
const error_middleware_1 = tslib_1.__importDefault(require("./middleware/error.middleware"));
const HandlerMiddlewareFactory_1 = tslib_1.__importDefault(require("./middleware/HandlerMiddlewareFactory"));
const serializer_middleware_1 = tslib_1.__importDefault(require("./middleware/serializer.middleware"));
const MiddlewareFactory_1 = tslib_1.__importDefault(require("./MiddlewareFactory"));
/**
* ExpressMiddlewareFactory will generate Express compatible middleware according to swagger definitions.
* Generated middleware MUST be used by strict order:
* * dispatchMiddleware
* * DeserializerMiddleware
* * HandlerMiddleware
* * SerializerMiddleware
* * ErrorMiddleware
* * EndMiddleware
*
* @export
* @class MiddlewareFactory
*/
class ExpressMiddlewareFactory extends MiddlewareFactory_1.default {
/**
* Creates an instance of MiddlewareFactory.
*
* @param {ILogger} logger A valid logger
* @param {string} [contextPath="default_context"] Optional. res.locals[contextPath] will be used to hold context
* @memberof MiddlewareFactory
*/
constructor(logger, contextPath = "default_context") {
super(logger);
this.contextPath = contextPath;
}
/**
* DispatchMiddleware is the 1s middleware should be used among other generated middleware.
*
* @returns {RequestHandler}
* @memberof MiddlewareFactory
*/
createDispatchMiddleware() {
return (req, res, next) => {
req.baseUrl;
const request = new ExpressRequestAdapter_1.default(req);
const response = new ExpressResponseAdapter_1.default(res);
(0, dispatch_middleware_1.default)(new Context_1.default(res.locals, this.contextPath, request, response), request, next, this.logger);
};
}
/**
* DeserializerMiddleware is the 2nd middleware should be used among other generated middleware.
*
* @returns {RequestHandler}
* @memberof MiddlewareFactory
*/
createDeserializerMiddleware() {
return (req, res, next) => {
const request = new ExpressRequestAdapter_1.default(req);
const response = new ExpressResponseAdapter_1.default(res);
(0, deserializer_middleware_1.default)(new Context_1.default(res.locals, this.contextPath, request, response), request, next, this.logger);
};
}
/**
* HandlerMiddleware is the 3rd middleware should be used among other generated middleware.
*
* @param {IHandlers} handlers
* @returns {RequestHandler}
* @memberof MiddlewareFactory
*/
createHandlerMiddleware(handlers) {
const handlerMiddlewareFactory = new HandlerMiddlewareFactory_1.default(handlers, this.logger);
return (req, res, next) => {
const request = new ExpressRequestAdapter_1.default(req);
const response = new ExpressResponseAdapter_1.default(res);
handlerMiddlewareFactory.createHandlerMiddleware()(new Context_1.default(res.locals, this.contextPath, request, response), next);
};
}
/**
* SerializerMiddleware is the 4st middleware should be used among other generated middleware.
*
* @returns {RequestHandler}
* @memberof MiddlewareFactory
*/
createSerializerMiddleware() {
return (req, res, next) => {
const request = new ExpressRequestAdapter_1.default(req);
const response = new ExpressResponseAdapter_1.default(res);
(0, serializer_middleware_1.default)(new Context_1.default(res.locals, this.contextPath, request, response), new ExpressResponseAdapter_1.default(res), next, this.logger);
};
}
/**
* ErrorMiddleware is the 5st middleware should be used among other generated middleware.
*
* @returns {ErrorRequestHandler}
* @memberof MiddlewareFactory
*/
createErrorMiddleware() {
return (err, req, res, next) => {
const request = new ExpressRequestAdapter_1.default(req);
const response = new ExpressResponseAdapter_1.default(res);
(0, error_middleware_1.default)(new Context_1.default(res.locals, this.contextPath, request, response), err, new ExpressRequestAdapter_1.default(req), new ExpressResponseAdapter_1.default(res), next, this.logger);
};
}
/**
* EndMiddleware is the 6st middleware should be used among other generated middleware.
*
* @returns {RequestHandler}
* @memberof MiddlewareFactory
*/
createEndMiddleware() {
return (req, res) => {
const request = new ExpressRequestAdapter_1.default(req);
const response = new ExpressResponseAdapter_1.default(res);
(0, end_middleware_1.default)(new Context_1.default(res.locals, this.contextPath, request, response), new ExpressResponseAdapter_1.default(res), this.logger);
};
}
}
exports.default = ExpressMiddlewareFactory;
//# sourceMappingURL=ExpressMiddlewareFactory.js.map