UNPKG

remap-istanbul

Version:

A tool for remapping Istanbul coverage via Source Maps

38 lines (33 loc) 1.13 kB
const fs = require('fs'); const { Collector } = require('istanbul'); /** * Takes sources of coverage information and adds them to a collector which then can be subsequently * remapped. * @param {Array|string} sources The source(s) of the JSON coverage information * @param {Object} [options] A hash of options that can be set: * readJSON?: A function that can read and parse a JSON file * warn?: A function that logs warning messages * @return {Object} The loaded coverage object */ module.exports = function loadCoverage(sources, options = {}) { const warn = options.warn || console.warn; const readJSON = options.readJSON || function (filePath) { if (!fs.existsSync(filePath)) { warn(new Error(`Cannot find file: "${filePath}"`)); return {}; } return JSON.parse(fs.readFileSync(filePath)); }; if (typeof sources === 'string') { sources = [sources]; } if (!sources.length) { warn(new SyntaxError('No coverage files supplied!')); } const collector = new Collector(); sources.forEach((filePath) => { collector.add(readJSON(filePath)); }); return collector.getFinalCoverage(); };