UNPKG

azurite

Version:

An open source Azure Storage API compatible server

122 lines 5.67 kB
"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