UNPKG

rollup-plugin-coverage

Version:

Istanbul unit test coverage plugin for Rollup.

39 lines (28 loc) 1.11 kB
'use strict'; 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;