Skip to content

Commit

Permalink
fix(coverage): c8 to ignore vite's generated helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
AriPerkkio committed Apr 24, 2023
1 parent 28d4e67 commit b97a60f
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 575 deletions.
26 changes: 25 additions & 1 deletion packages/coverage-c8/src/provider.ts
Expand Up @@ -169,7 +169,7 @@ export class C8CoverageProvider extends BaseCoverageProvider implements Coverage

return {
sourceMap: {
sourcemap: data.map,
sourcemap: removeViteHelpersFromSourceMaps(data.source, data.map),
},
source: Array(offset).fill('.').join('') + data.source,
}
Expand All @@ -193,3 +193,27 @@ export class C8CoverageProvider extends BaseCoverageProvider implements Coverage
}
}
}

function removeViteHelpersFromSourceMaps(source: string | undefined, map: EncodedSourceMap): EncodedSourceMap {
if (!source?.includes('__vite_ssr_exports__'))
return map

const exportIndexes = source.split('\n').map((line, index) => {
if (/Object\.defineProperty\(__vite_ssr_exports__/.test(line))
return index
return -1
}).filter(index => index !== -1)

if (exportIndexes.length === 0)
return map

const mappings = map.mappings.split(';')
exportIndexes.forEach((index) => {
mappings[index] = ''
})

return {
...map,
mappings: mappings.join(';'),
}
}

0 comments on commit b97a60f

Please sign in to comment.