MCPcopy
hub / github.com/di-sukharev/opencommit / Multipart

Function Multipart

out/cli.cjs:49479–49706  ·  view source on GitHub ↗
(boy, cfg)

Source from the content-addressed store, hash-verified

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);

Callers

nothing calls this directly

Calls 12

skipPartFunction · 0.85
parseParamsFunction · 0.85
checkFinishedFunction · 0.85
decodeTextFunction · 0.85
testMethod · 0.80
removeListenerMethod · 0.80
toLowerCaseMethod · 0.80
onMethod · 0.45
emitMethod · 0.45
pushMethod · 0.45
sliceMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…