1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', {
|
4 | value: true
|
5 | });
|
6 | exports.default = generateEmptyCoverage;
|
7 |
|
8 | function fs() {
|
9 | const data = _interopRequireWildcard(require('graceful-fs'));
|
10 |
|
11 | fs = function () {
|
12 | return data;
|
13 | };
|
14 |
|
15 | return data;
|
16 | }
|
17 |
|
18 | function _istanbulLibCoverage() {
|
19 | const data = require('istanbul-lib-coverage');
|
20 |
|
21 | _istanbulLibCoverage = function () {
|
22 | return data;
|
23 | };
|
24 |
|
25 | return data;
|
26 | }
|
27 |
|
28 | function _istanbulLibInstrument() {
|
29 | const data = require('istanbul-lib-instrument');
|
30 |
|
31 | _istanbulLibInstrument = function () {
|
32 | return data;
|
33 | };
|
34 |
|
35 | return data;
|
36 | }
|
37 |
|
38 | function _transform() {
|
39 | const data = require('@jest/transform');
|
40 |
|
41 | _transform = function () {
|
42 | return data;
|
43 | };
|
44 |
|
45 | return data;
|
46 | }
|
47 |
|
48 | function _getRequireWildcardCache(nodeInterop) {
|
49 | if (typeof WeakMap !== 'function') return null;
|
50 | var cacheBabelInterop = new WeakMap();
|
51 | var cacheNodeInterop = new WeakMap();
|
52 | return (_getRequireWildcardCache = function (nodeInterop) {
|
53 | return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
54 | })(nodeInterop);
|
55 | }
|
56 |
|
57 | function _interopRequireWildcard(obj, nodeInterop) {
|
58 | if (!nodeInterop && obj && obj.__esModule) {
|
59 | return obj;
|
60 | }
|
61 | if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
|
62 | return {default: obj};
|
63 | }
|
64 | var cache = _getRequireWildcardCache(nodeInterop);
|
65 | if (cache && cache.has(obj)) {
|
66 | return cache.get(obj);
|
67 | }
|
68 | var newObj = {};
|
69 | var hasPropertyDescriptor =
|
70 | Object.defineProperty && Object.getOwnPropertyDescriptor;
|
71 | for (var key in obj) {
|
72 | if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) {
|
73 | var desc = hasPropertyDescriptor
|
74 | ? Object.getOwnPropertyDescriptor(obj, key)
|
75 | : null;
|
76 | if (desc && (desc.get || desc.set)) {
|
77 | Object.defineProperty(newObj, key, desc);
|
78 | } else {
|
79 | newObj[key] = obj[key];
|
80 | }
|
81 | }
|
82 | }
|
83 | newObj.default = obj;
|
84 | if (cache) {
|
85 | cache.set(obj, newObj);
|
86 | }
|
87 | return newObj;
|
88 | }
|
89 |
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 |
|
96 | async function generateEmptyCoverage(
|
97 | source,
|
98 | filename,
|
99 | globalConfig,
|
100 | config,
|
101 | changedFiles,
|
102 | sourcesRelatedToTestsInChangedFiles
|
103 | ) {
|
104 | const coverageOptions = {
|
105 | changedFiles,
|
106 | collectCoverage: globalConfig.collectCoverage,
|
107 | collectCoverageFrom: globalConfig.collectCoverageFrom,
|
108 | collectCoverageOnlyFrom: globalConfig.collectCoverageOnlyFrom,
|
109 | coverageProvider: globalConfig.coverageProvider,
|
110 | sourcesRelatedToTestsInChangedFiles
|
111 | };
|
112 | let coverageWorkerResult = null;
|
113 |
|
114 | if ((0, _transform().shouldInstrument)(filename, coverageOptions, config)) {
|
115 | if (coverageOptions.coverageProvider === 'v8') {
|
116 | const stat = fs().statSync(filename);
|
117 | return {
|
118 | kind: 'V8Coverage',
|
119 | result: {
|
120 | functions: [
|
121 | {
|
122 | functionName: '(empty-report)',
|
123 | isBlockCoverage: true,
|
124 | ranges: [
|
125 | {
|
126 | count: 0,
|
127 | endOffset: stat.size,
|
128 | startOffset: 0
|
129 | }
|
130 | ]
|
131 | }
|
132 | ],
|
133 | scriptId: '0',
|
134 | url: filename
|
135 | }
|
136 | };
|
137 | }
|
138 |
|
139 | const scriptTransformer = await (0, _transform().createScriptTransformer)(
|
140 | config
|
141 | );
|
142 |
|
143 | const {code} = await scriptTransformer.transformSourceAsync(
|
144 | filename,
|
145 | source,
|
146 | {
|
147 | instrument: true,
|
148 | supportsDynamicImport: true,
|
149 | supportsExportNamespaceFrom: true,
|
150 | supportsStaticESM: true,
|
151 | supportsTopLevelAwait: true
|
152 | }
|
153 | );
|
154 |
|
155 | const extracted = (0, _istanbulLibInstrument().readInitialCoverage)(code);
|
156 |
|
157 | if (extracted) {
|
158 | coverageWorkerResult = {
|
159 | coverage: (0, _istanbulLibCoverage().createFileCoverage)(
|
160 | extracted.coverageData
|
161 | ),
|
162 | kind: 'BabelCoverage'
|
163 | };
|
164 | }
|
165 | }
|
166 |
|
167 | return coverageWorkerResult;
|
168 | }
|