(boy, cfg)
| 49477 | var basename2 = require_basename(); |
| 49478 | var getLimit = require_getLimit(); |
| 49479 | var RE_BOUNDARY = /^boundary$/i; |
| 49480 | var RE_FIELD = /^form-data$/i; |
| 49481 | var RE_CHARSET = /^charset$/i; |
| 49482 | var RE_FILENAME = /^filename$/i; |
| 49483 | var RE_NAME = /^name$/i; |
| 49484 | Multipart.detect = /^multipart\/form-data/i; |
| 49485 | function Multipart(boy, cfg) { |
| 49486 | let i3; |
| 49487 | let len; |
| 49488 | const self2 = this; |
| 49489 | let boundary; |
| 49490 | const limits = cfg.limits; |
| 49491 | const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => contentType === "application/octet-stream" || fileName !== void 0); |
| 49492 | const parsedConType = cfg.parsedConType || []; |
| 49493 | const defCharset = cfg.defCharset || "utf8"; |
| 49494 | const preservePath = cfg.preservePath; |
| 49495 | const fileOpts = { highWaterMark: cfg.fileHwm }; |
| 49496 | for (i3 = 0, len = parsedConType.length; i3 < len; ++i3) { |
| 49497 | if (Array.isArray(parsedConType[i3]) && RE_BOUNDARY.test(parsedConType[i3][0])) { |
| 49498 | boundary = parsedConType[i3][1]; |
| 49499 | break; |
| 49500 | } |
| 49501 | } |
| 49502 | function checkFinished() { |
| 49503 | if (nends === 0 && finished && !boy._done) { |
| 49504 | finished = false; |
| 49505 | self2.end(); |
| 49506 | } |
| 49507 | } |
| 49508 | if (typeof boundary !== "string") { |
| 49509 | throw new Error("Multipart: Boundary not found"); |
| 49510 | } |
| 49511 | const fieldSizeLimit = getLimit(limits, "fieldSize", 1 * 1024 * 1024); |
| 49512 | const fileSizeLimit = getLimit(limits, "fileSize", Infinity); |
| 49513 | const filesLimit = getLimit(limits, "files", Infinity); |
| 49514 | const fieldsLimit = getLimit(limits, "fields", Infinity); |
| 49515 | const partsLimit = getLimit(limits, "parts", Infinity); |
| 49516 | const headerPairsLimit = getLimit(limits, "headerPairs", 2e3); |
| 49517 | const headerSizeLimit = getLimit(limits, "headerSize", 80 * 1024); |
| 49518 | let nfiles = 0; |
| 49519 | let nfields = 0; |
| 49520 | let nends = 0; |
| 49521 | let curFile; |
| 49522 | let curField; |
| 49523 | let finished = false; |
| 49524 | this._needDrain = false; |
| 49525 | this._pause = false; |
| 49526 | this._cb = void 0; |
| 49527 | this._nparts = 0; |
| 49528 | this._boy = boy; |
| 49529 | const parserCfg = { |
| 49530 | boundary, |
| 49531 | maxHeaderPairs: headerPairsLimit, |
| 49532 | maxHeaderSize: headerSizeLimit, |
| 49533 | partHwm: fileOpts.highWaterMark, |
| 49534 | highWaterMark: cfg.highWaterMark |
| 49535 | }; |
| 49536 | this.parser = new Dicer(parserCfg); |
nothing calls this directly
no test coverage detected
searching dependent graphs…