UNPKG

node-web-mvc

Version:
26 lines (25 loc) 1.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const MultipartException_1 = __importDefault(require("../../../errors/MultipartException")); const RequestPart_1 = __importDefault(require("../../annotations/params/RequestPart")); const HttpHeaders_1 = __importDefault(require("../../http/HttpHeaders")); class RequestPartArgumentResolver { supportsParameter(parameter, servletContext) { return parameter.hasParameterAnnotation(RequestPart_1.default); } async resolveArgument(parameter, servletContext) { const request = servletContext.request; const anno = parameter.getParameterAnnotation(RequestPart_1.default); const contentType = request.getHeaderSingleValue(HttpHeaders_1.default.CONTENT_TYPE); if (contentType.indexOf('multipart/') < 0) { throw new MultipartException_1.default(`the request doesn't contain a multipart/form-data or multipart/mixed stream `); } const name = anno.value || parameter.paramName; const body = await request.bodyReader.read(servletContext); return body[name]; } } exports.default = RequestPartArgumentResolver;