* @param {ResolutionMap} resolutionMap resolution map * @returns {Promise } resolved value
(resolutionMap)
| 442 | * @returns {Promise<string>} resolved value |
| 443 | */ |
| 444 | async function startResolving(resolutionMap) { |
| 445 | if (resolutionMap.length === 0) { |
| 446 | throw new Error("Next"); |
| 447 | } |
| 448 | |
| 449 | const [{ possibleRequests }] = resolutionMap; |
| 450 | |
| 451 | if (possibleRequests.length === 0) { |
| 452 | throw new Error("Next"); |
| 453 | } |
| 454 | |
| 455 | const [{ resolve, context }] = resolutionMap; |
| 456 | |
| 457 | try { |
| 458 | return await resolve(context, possibleRequests[0]); |
| 459 | } catch { |
| 460 | const [, ...tailResult] = possibleRequests; |
| 461 | |
| 462 | if (tailResult.length === 0) { |
| 463 | const [, ...tailResolutionMap] = resolutionMap; |
| 464 | |
| 465 | return startResolving(tailResolutionMap); |
| 466 | } |
| 467 | |
| 468 | resolutionMap[0].possibleRequests = tailResult; |
| 469 | |
| 470 | return startResolving(resolutionMap); |
| 471 | } |
| 472 | } |
| 473 | |
| 474 | // `[drive_letter]:\` + `\\[server]\[sharename]\` |
| 475 | const IS_NATIVE_WIN32_PATH = /^[a-z]:[/\\]|^\\\\/i; |
no test coverage detected
searching dependent graphs…