@marblejs/middleware-multipart
Version:
A multipart/form-data middleware for Marble.js
14 lines (13 loc) • 884 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.multipart$ = void 0;
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
const http_1 = require("@marblejs/http");
const contentType_util_1 = require("@marblejs/http/dist/+internal/contentType.util");
const multipart_parser_1 = require("./multipart.parser");
const multipart_util_1 = require("./multipart.util");
const multipart$ = (opts = {}) => (req$) => req$.pipe((0, operators_1.mergeMap)(req => (0, multipart_util_1.shouldParseMultipart)(req)
? (0, multipart_parser_1.parseMultipart)(opts)(req)
: (0, rxjs_1.throwError)(() => new http_1.HttpError(`Content-Type must be of type ${contentType_util_1.ContentType.MULTIPART_FORM_DATA}`, http_1.HttpStatus.PRECONDITION_FAILED, undefined, req))), (0, operators_1.map)(req => req));
exports.multipart$ = multipart$;