2020-03-31 20:42:07 +08:00
'use strict' ;
Object . defineProperty ( exports , '__esModule' , {
value : true
} ) ;
exports . default = _default ;
function fs ( ) {
2020-04-30 20:40:07 +08:00
const data = _interopRequireWildcard ( require ( 'graceful-fs' ) ) ;
2020-03-31 20:42:07 +08:00
fs = function ( ) {
return data ;
} ;
return data ;
}
function _istanbulLibInstrument ( ) {
const data = require ( 'istanbul-lib-instrument' ) ;
_istanbulLibInstrument = function ( ) {
return data ;
} ;
return data ;
}
function _istanbulLibCoverage ( ) {
const data = require ( 'istanbul-lib-coverage' ) ;
_istanbulLibCoverage = function ( ) {
return data ;
} ;
return data ;
}
function _transform ( ) {
const data = require ( '@jest/transform' ) ;
_transform = function ( ) {
return data ;
} ;
return data ;
}
function _getRequireWildcardCache ( ) {
if ( typeof WeakMap !== 'function' ) return null ;
var cache = new WeakMap ( ) ;
_getRequireWildcardCache = function ( ) {
return cache ;
} ;
return cache ;
}
function _interopRequireWildcard ( obj ) {
if ( obj && obj . _ _esModule ) {
return obj ;
}
if ( obj === null || ( typeof obj !== 'object' && typeof obj !== 'function' ) ) {
return { default : obj } ;
}
var cache = _getRequireWildcardCache ( ) ;
if ( cache && cache . has ( obj ) ) {
return cache . get ( obj ) ;
}
var newObj = { } ;
var hasPropertyDescriptor =
Object . defineProperty && Object . getOwnPropertyDescriptor ;
for ( var key in obj ) {
if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) {
var desc = hasPropertyDescriptor
? Object . getOwnPropertyDescriptor ( obj , key )
: null ;
if ( desc && ( desc . get || desc . set ) ) {
Object . defineProperty ( newObj , key , desc ) ;
} else {
newObj [ key ] = obj [ key ] ;
}
}
}
newObj . default = obj ;
if ( cache ) {
cache . set ( obj , newObj ) ;
}
return newObj ;
}
/ * *
* Copyright ( c ) Facebook , Inc . and its affiliates . All Rights Reserved .
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree .
* /
2020-04-30 20:40:07 +08:00
function _default (
source ,
filename ,
globalConfig ,
config ,
changedFiles ,
sourcesRelatedToTestsInChangedFiles
) {
2020-03-31 20:42:07 +08:00
const coverageOptions = {
changedFiles ,
collectCoverage : globalConfig . collectCoverage ,
collectCoverageFrom : globalConfig . collectCoverageFrom ,
collectCoverageOnlyFrom : globalConfig . collectCoverageOnlyFrom ,
2020-04-30 20:40:07 +08:00
coverageProvider : globalConfig . coverageProvider ,
sourcesRelatedToTestsInChangedFiles
2020-03-31 20:42:07 +08:00
} ;
let coverageWorkerResult = null ;
if ( ( 0 , _transform ( ) . shouldInstrument ) ( filename , coverageOptions , config ) ) {
if ( coverageOptions . coverageProvider === 'v8' ) {
const stat = fs ( ) . statSync ( filename ) ;
return {
kind : 'V8Coverage' ,
result : {
functions : [
{
functionName : '(empty-report)' ,
isBlockCoverage : true ,
ranges : [
{
count : 0 ,
endOffset : stat . size ,
startOffset : 0
}
]
}
] ,
scriptId : '0' ,
url : filename
}
} ;
} // Transform file with instrumentation to make sure initial coverage data is well mapped to original code.
2020-04-30 20:40:07 +08:00
const { code } = new ( _transform ( ) . ScriptTransformer ) ( config ) . transformSource (
2020-03-31 20:42:07 +08:00
filename ,
source ,
true
) ; // TODO: consider passing AST
const extracted = ( 0 , _istanbulLibInstrument ( ) . readInitialCoverage ) ( code ) ; // Check extracted initial coverage is not null, this can happen when using /* istanbul ignore file */
if ( extracted ) {
coverageWorkerResult = {
coverage : ( 0 , _istanbulLibCoverage ( ) . createFileCoverage ) (
extracted . coverageData
) ,
2020-04-30 20:40:07 +08:00
kind : 'BabelCoverage'
2020-03-31 20:42:07 +08:00
} ;
}
}
return coverageWorkerResult ;
}