@nx/vite
Version:
119 lines (118 loc) • 5.35 kB
JavaScript
"use strict";
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
fixCoverageAndRerporters: function() {
return fixCoverageAndRerporters;
},
getConfigNode: function() {
return getConfigNode;
}
});
const _devkit = require("@nx/devkit");
const _tsquery = require("@phenomnomnominal/tsquery");
const ts = require("typescript");
function fixCoverageAndRerporters(configContents) {
var _tsquery_query, _tsquery_query1;
const configNode = getConfigNode(configContents);
if (!configNode) {
return;
}
const testHasCoverage = (_tsquery_query = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"]):has(PropertyAssignment:has(Identifier[name="coverage"]))`)) == null ? void 0 : _tsquery_query[0];
let changes = [];
if (testHasCoverage) {
var _tsquery_query2, _tsquery_query3, _tsquery_query4, _tsquery_query5, _tsquery_query6;
const testObjectLiteralExpressionNode = (_tsquery_query2 = _tsquery.tsquery.query(testHasCoverage, `ObjectLiteralExpression:has(Identifier[name="coverage"])`)) == null ? void 0 : _tsquery_query2[0];
const coverageNode = findCoverageNode(testObjectLiteralExpressionNode);
if (!coverageNode) {
return;
}
const linesNode = (_tsquery_query3 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="lines"])`)) == null ? void 0 : _tsquery_query3[0];
const statementsNode = (_tsquery_query4 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="statements"])`)) == null ? void 0 : _tsquery_query4[0];
const functionsNode = (_tsquery_query5 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="functions"])`)) == null ? void 0 : _tsquery_query5[0];
const branchesNode = (_tsquery_query6 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="branches"])`)) == null ? void 0 : _tsquery_query6[0];
if (linesNode) {
changes.push({
type: _devkit.ChangeType.Delete,
start: linesNode.getStart(),
length: linesNode.getWidth() + 1
});
}
if (statementsNode) {
changes.push({
type: _devkit.ChangeType.Delete,
start: statementsNode.getStart(),
length: statementsNode.getWidth() + 1
});
}
if (functionsNode) {
changes.push({
type: _devkit.ChangeType.Delete,
start: functionsNode.getStart(),
length: functionsNode.getWidth() + 1
});
}
if (branchesNode) {
changes.push({
type: _devkit.ChangeType.Delete,
start: branchesNode.getStart(),
length: branchesNode.getWidth() + 1
});
}
if (branchesNode || functionsNode || statementsNode || linesNode) {
changes.push({
type: _devkit.ChangeType.Insert,
index: coverageNode.getStart() + 1,
text: `thresholds: {
${linesNode ? linesNode.getText() + ',' : ''}
${statementsNode ? statementsNode.getText() + ',' : ''}
${functionsNode ? functionsNode.getText() + ',' : ''}
${branchesNode ? branchesNode.getText() + ',' : ''}
},`
});
}
}
const testHasReporters = (_tsquery_query1 = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"]):has(PropertyAssignment:has(Identifier[name="reporters"]))`)) == null ? void 0 : _tsquery_query1[0];
if (!testHasReporters) {
var _tsquery_query7;
const testObject = (_tsquery_query7 = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"])`)) == null ? void 0 : _tsquery_query7[0];
if (testObject) {
changes.push({
type: _devkit.ChangeType.Insert,
index: testObject.getStart() + `test: {`.length + 1,
text: `reporters: ['default'],`
});
}
}
if (changes.length > 0) {
return (0, _devkit.applyChangesToString)(configContents, changes);
} else {
return;
}
}
function getConfigNode(configFileContents) {
var _tsquery_query, _tsquery_query1;
if (!configFileContents) {
return;
}
let configNode = (_tsquery_query = _tsquery.tsquery.query(configFileContents, `ObjectLiteralExpression`)) == null ? void 0 : _tsquery_query[0];
const arrowFunctionReturnStatement = (_tsquery_query1 = _tsquery.tsquery.query(configFileContents, `ArrowFunction Block ReturnStatement ObjectLiteralExpression`)) == null ? void 0 : _tsquery_query1[0];
if (arrowFunctionReturnStatement) {
configNode = arrowFunctionReturnStatement;
}
return configNode;
}
function findCoverageNode(testNode) {
let coverageNode;
testNode.forEachChild((child)=>{
if (ts.isPropertyAssignment(child) && child.name.getText() === 'coverage') {
coverageNode = child.initializer;
}
});
return coverageNode;
}
//# sourceMappingURL=fix-coverage-and-reporters.js.map