(jsonMetadata: string, depsCacheDir: string)
| 81 | |
| 82 | // https://github.com/vitejs/vite/blob/b7ddfae5f852c2948fab03e94751ce56f5f31ce0/packages/vite/src/node/optimizer/index.ts#L944 |
| 83 | function parseDepsOptimizerMetadata(jsonMetadata: string, depsCacheDir: string): DepOptimizationMetadata | undefined { |
| 84 | const { hash, lockfileHash, configHash, browserHash, optimized, chunks } = JSON.parse( |
| 85 | jsonMetadata, |
| 86 | (key: string, value: string) => { |
| 87 | if (key === 'file' || key === 'src') { |
| 88 | return normalizePath(path.resolve(depsCacheDir, value)); |
| 89 | } |
| 90 | return value; |
| 91 | } |
| 92 | ); |
| 93 | if (!chunks || Object.values(optimized).some(depInfo => !(depInfo as { fileHash: string }).fileHash)) { |
| 94 | // outdated _metadata.json version, ignore |
| 95 | return; |
| 96 | } |
| 97 | const metadata = { |
| 98 | hash, |
| 99 | lockfileHash, |
| 100 | configHash, |
| 101 | browserHash, |
| 102 | optimized: {}, |
| 103 | discovered: {}, |
| 104 | chunks: {}, |
| 105 | depInfoList: [] |
| 106 | }; |
| 107 | for (const id of Object.keys(optimized)) { |
| 108 | addOptimizedDepInfo(metadata, 'optimized', { |
| 109 | ...optimized[id], |
| 110 | id, |
| 111 | browserHash |
| 112 | }); |
| 113 | } |
| 114 | for (const id of Object.keys(chunks)) { |
| 115 | addOptimizedDepInfo(metadata, 'chunks', { |
| 116 | ...chunks[id], |
| 117 | id, |
| 118 | browserHash, |
| 119 | needsInterop: false |
| 120 | }); |
| 121 | } |
| 122 | return metadata; |
| 123 | } |
| 124 | |
| 125 | // https://github.com/vitejs/vite/blob/b7ddfae5f852c2948fab03e94751ce56f5f31ce0/packages/vite/src/node/optimizer/index.ts#L322 |
| 126 | function addOptimizedDepInfo( |
no test coverage detected