(globParts)
| 1353 | } |
| 1354 | // get rid of adjascent ** and resolve .. portions |
| 1355 | levelOneOptimize(globParts) { |
| 1356 | return globParts.map((parts) => { |
| 1357 | parts = parts.reduce((set, part) => { |
| 1358 | const prev = set[set.length - 1]; |
| 1359 | if (part === "**" && prev === "**") { |
| 1360 | return set; |
| 1361 | } |
| 1362 | if (part === "..") { |
| 1363 | if (prev && prev !== ".." && prev !== "." && prev !== "**") { |
| 1364 | set.pop(); |
| 1365 | return set; |
| 1366 | } |
| 1367 | } |
| 1368 | set.push(part); |
| 1369 | return set; |
| 1370 | }, []); |
| 1371 | return parts.length === 0 ? [""] : parts; |
| 1372 | }); |
| 1373 | } |
| 1374 | levelTwoFileOptimize(parts) { |
| 1375 | if (!Array.isArray(parts)) { |
| 1376 | parts = this.slashSplit(parts); |
no test coverage detected