UNPKG

@nx/vite

Version:

The Nx Plugin for building and testing applications using Vite

119 lines (118 loc) 5.35 kB
"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