UNPKG

@tsed/common

Version:
55 lines 2.24 kB
"use strict"; var PlatformMulterMiddleware_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.PlatformMulterMiddleware = void 0; const tslib_1 = require("tslib"); const di_1 = require("@tsed/di"); const exceptions_1 = require("@tsed/exceptions"); const middleware_1 = require("../../mvc/decorators/class/middleware"); const context_1 = require("../decorators/context"); const PlatformApplication_1 = require("../services/PlatformApplication"); /** * @middleware */ let PlatformMulterMiddleware = PlatformMulterMiddleware_1 = class PlatformMulterMiddleware { async use(ctx) { try { const { fields, options = {} } = ctx.endpoint.get(PlatformMulterMiddleware_1); const settings = { ...this.settings, ...options }; /* istanbul ignore next */ if (settings.storage) { delete settings.dest; } const middleware = this.app.multer(settings).fields(this.getFields({ fields })); return await middleware(ctx.getRequest(), ctx.getResponse()); } catch (er) { throw er.code ? new exceptions_1.Exception(er.code, `${er.message} ${er.field || ""}`.trim()) : er; } } getFields(conf) { return conf.fields.map(({ name, maxCount }) => ({ name, maxCount })); } }; tslib_1.__decorate([ di_1.Constant("multer", {}), tslib_1.__metadata("design:type", Object) ], PlatformMulterMiddleware.prototype, "settings", void 0); tslib_1.__decorate([ di_1.Inject(), tslib_1.__metadata("design:type", PlatformApplication_1.PlatformApplication) ], PlatformMulterMiddleware.prototype, "app", void 0); tslib_1.__decorate([ tslib_1.__param(0, context_1.Context()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", Promise) ], PlatformMulterMiddleware.prototype, "use", null); PlatformMulterMiddleware = PlatformMulterMiddleware_1 = tslib_1.__decorate([ middleware_1.Middleware() ], PlatformMulterMiddleware); exports.PlatformMulterMiddleware = PlatformMulterMiddleware; //# sourceMappingURL=PlatformMulterMiddleware.js.map