| 52 | |
| 53 | let assets = new Map(await queue.run()); |
| 54 | let load = id => { |
| 55 | const cachedModule = moduleCache.get(id); |
| 56 | if (cachedModule) { |
| 57 | return cachedModule.exports; |
| 58 | } |
| 59 | |
| 60 | let [asset, code] = assets.get(id); |
| 61 | let moduleFunction = vm.compileFunction( |
| 62 | code, |
| 63 | ['exports', 'require', 'module', '__dirname', '__filename', 'parcelRequire'], |
| 64 | { |
| 65 | filename: asset.filePath |
| 66 | } |
| 67 | ); |
| 68 | |
| 69 | let deps = new Map(); |
| 70 | for (let dep of bundleGraph.getDependencies(asset)) { |
| 71 | if (bundleGraph.isDependencySkipped(dep)) { |
| 72 | deps.set(getSpecifier(dep), {skipped: true}); |
| 73 | continue; |
| 74 | } |
| 75 | |
| 76 | let entryBundle = bundleGraph.getReferencedBundle(dep, bundle); |
| 77 | if (entryBundle?.bundleBehavior === 'inline') { |
| 78 | deps.set(getSpecifier(dep), {id: entryBundle.id}); |
| 79 | continue; |
| 80 | } |
| 81 | |
| 82 | let resolved = bundleGraph.getResolvedAsset(dep, bundle); |
| 83 | if (resolved) { |
| 84 | if (resolved.type !== 'js') { |
| 85 | deps.set(getSpecifier(dep), {skipped: true}); |
| 86 | } else { |
| 87 | let resolution = {id: resolved.id}; |
| 88 | |
| 89 | // Dependencies may be re-targeted to follow re-exports. |
| 90 | for (let [name, sym] of dep.symbols) { |
| 91 | let rewritten = sym.meta?.rewritten; |
| 92 | /* eslint-disable max-depth */ |
| 93 | if (typeof rewritten === 'string') { |
| 94 | if (Array.isArray(resolution)) { |
| 95 | resolution.push([rewritten, resolved.id, name]); |
| 96 | } else { |
| 97 | resolution = [[rewritten, resolved.id, name]]; |
| 98 | } |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | let specifier = getSpecifier(dep); |
| 103 | let cur = deps.get(specifier); |
| 104 | if (Array.isArray(cur) && Array.isArray(resolution)) { |
| 105 | cur.push(...resolution); |
| 106 | } else { |
| 107 | deps.set(specifier, resolution); |
| 108 | } |
| 109 | } |
| 110 | } else { |
| 111 | deps.set(getSpecifier(dep), {specifier: dep.specifier}); |
no test coverage detected