UNPKG

azurite

Version:

An open source Azure Storage API compatible server

55 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UnsupportedParametersBlocker = exports.UnsupportedHeadersBlocker = void 0; const tslib_1 = require("tslib"); const BlobStorageContext_1 = tslib_1.__importDefault(require("../context/BlobStorageContext")); const StrictModelNotSupportedError_1 = tslib_1.__importDefault(require("../errors/StrictModelNotSupportedError")); const ExpressRequestAdapter_1 = tslib_1.__importDefault(require("../generated/ExpressRequestAdapter")); const constants_1 = require("../utils/constants"); const UnsupportedHeadersBlocker = async (req, context, logger) => { const UnsupportedHeaderKeys = [ constants_1.HeaderConstants.X_MS_CONTENT_CRC64, constants_1.HeaderConstants.X_MS_RANGE_GET_CONTENT_CRC64, constants_1.HeaderConstants.X_MS_ENCRYPTION_KEY, constants_1.HeaderConstants.X_MS_ENCRYPTION_KEY_SHA256, constants_1.HeaderConstants.X_MS_ENCRYPTION_ALGORITHM ]; for (const headerKey of UnsupportedHeaderKeys) { const value = req.getHeader(headerKey); if (typeof value === "string") { throw new StrictModelNotSupportedError_1.default(headerKey, context.contextId); } } }; exports.UnsupportedHeadersBlocker = UnsupportedHeadersBlocker; const UnsupportedParametersBlocker = async (req, context, logger) => { const UnsupportedParameterKeys = []; for (const parameterKey of UnsupportedParameterKeys) { const value = req.getQuery(parameterKey); if (typeof value === "string") { throw new StrictModelNotSupportedError_1.default(parameterKey, context.contextId); } } }; exports.UnsupportedParametersBlocker = UnsupportedParametersBlocker; class StrictModelMiddlewareFactory { constructor(logger, validators) { this.logger = logger; this.validators = validators; } createStrictModelMiddleware() { return (req, res, next) => { this.validate(req, res) .then(next) .catch(next); }; } async validate(req, res) { const context = new BlobStorageContext_1.default(res.locals, constants_1.DEFAULT_CONTEXT_PATH); for (const validator of this.validators) { await validator(new ExpressRequestAdapter_1.default(req), context, this.logger); } } } exports.default = StrictModelMiddlewareFactory; //# sourceMappingURL=StrictModelMiddlewareFactory.js.map