rollup-plugin-coverage
Version:
Istanbul unit test coverage plugin for Rollup.
39 lines (28 loc) • 1.11 kB
JavaScript
;
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var rollupPluginutils = require('rollup-pluginutils');
var istanbul = _interopDefault(require('istanbul'));
function index( options ) {
if ( options === void 0 ) options = {};
var filter = rollupPluginutils.createFilter(options.include, options.exclude);
return {
name: 'coverage',
transform: function transform ( code, id ) {
if (!filter(id)) return;
var sourceMapID = options.sourceMapID !== false;
var opts = Object.assign({}, options.instrumenterConfig);
if (sourceMapID) {
opts.codeGenerationOptions = Object.assign({},
opts.codeGenerationOptions || {format: {compact: !opts.noCompact}},
{sourceMap: id, sourceMapWithCode: true}
);
}
opts.esModules = true;
var instrumenter = new (options.instrumenter || istanbul).Instrumenter(opts);
code = instrumenter.instrumentSync(code, id);
var map = sourceMapID ? instrumenter.lastSourceMap().toJSON() : {mappings: ''};
return { code: code, map: map };
}
};
}
module.exports = index;