MCPcopy Index your code
hub / github.com/nodejs/node / levelTwoFileOptimize

Method levelTwoFileOptimize

deps/minimatch/index.js:1374–1408  ·  view source on GitHub ↗
(parts)

Source from the content-addressed store, hash-verified

1372 });
1373 }
1374 levelTwoFileOptimize(parts) {
1375 if (!Array.isArray(parts)) {
1376 parts = this.slashSplit(parts);
1377 }
1378 let didSomething = false;
1379 do {
1380 didSomething = false;
1381 if (!this.preserveMultipleSlashes) {
1382 for (let i = 1; i < parts.length - 1; i++) {
1383 const p = parts[i];
1384 if (i === 1 && p === "" && parts[0] === "")
1385 continue;
1386 if (p === "." || p === "") {
1387 didSomething = true;
1388 parts.splice(i, 1);
1389 i--;
1390 }
1391 }
1392 if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
1393 didSomething = true;
1394 parts.pop();
1395 }
1396 }
1397 let dd = 0;
1398 while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
1399 const p = parts[dd - 1];
1400 if (p && p !== "." && p !== ".." && p !== "**" && !(this.isWindows && /^[a-z]:$/i.test(p))) {
1401 didSomething = true;
1402 parts.splice(dd - 1, 2);
1403 dd -= 2;
1404 }
1405 }
1406 } while (didSomething);
1407 return parts.length === 0 ? [""] : parts;
1408 }
1409 // First phase: single-pattern processing
1410 // <pre> is 1 or more portions
1411 // <rest> is 1 or more portions

Callers 1

matchOneMethod · 0.80

Calls 4

slashSplitMethod · 0.80
popMethod · 0.80
indexOfMethod · 0.45
testMethod · 0.45

Tested by

no test coverage detected