57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', {
|
|
value: true
|
|
});
|
|
|
|
exports.default = function(source, filename, globalConfig, config) {
|
|
const coverageOptions = {
|
|
collectCoverage: globalConfig.collectCoverage,
|
|
collectCoverageFrom: globalConfig.collectCoverageFrom,
|
|
collectCoverageOnlyFrom: globalConfig.collectCoverageOnlyFrom
|
|
};
|
|
if (
|
|
(_jestRuntime || _load_jestRuntime()).default.shouldInstrument(
|
|
filename,
|
|
coverageOptions,
|
|
config
|
|
)
|
|
) {
|
|
// Transform file without instrumentation first, to make sure produced
|
|
// source code is ES6 (no flowtypes etc.) and can be instrumented
|
|
const transformResult = new (
|
|
_jestRuntime || _load_jestRuntime()
|
|
).default.ScriptTransformer(config).transformSource(
|
|
filename,
|
|
source,
|
|
false
|
|
);
|
|
const instrumenter = (0,
|
|
(_istanbulLibInstrument || _load_istanbulLibInstrument())
|
|
.createInstrumenter)();
|
|
instrumenter.instrumentSync(transformResult.code, filename);
|
|
return {
|
|
coverage: instrumenter.fileCoverage,
|
|
sourceMapPath: transformResult.sourceMapPath
|
|
};
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
var _istanbulLibInstrument;
|
|
|
|
function _load_istanbulLibInstrument() {
|
|
return (_istanbulLibInstrument = require('istanbul-lib-instrument'));
|
|
}
|
|
|
|
var _jestRuntime;
|
|
|
|
function _load_jestRuntime() {
|
|
return (_jestRuntime = _interopRequireDefault(require('jest-runtime')));
|
|
}
|
|
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : {default: obj};
|
|
}
|