@nx/vite
Version:
51 lines (50 loc) • 2.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVitestDependenciesVersionsToInstall = getVitestDependenciesVersionsToInstall;
exports.isVitestV1 = isVitestV1;
exports.getInstalledVitestVersion = getInstalledVitestVersion;
exports.getInstalledVitestVersionFromGraph = getInstalledVitestVersionFromGraph;
const versions_1 = require("./versions");
const semver_1 = require("semver");
const devkit_1 = require("@nx/devkit");
async function getVitestDependenciesVersionsToInstall(tree) {
if (await isVitestV1(tree)) {
return {
vitest: versions_1.vitestV1Version,
vitestCoverageV8: versions_1.vitestV1CoverageV8Version,
vitestCoverageIstanbul: versions_1.vitestV1CoverageIstanbulVersion,
};
}
else {
return {
vitest: versions_1.vitestVersion,
vitestCoverageV8: versions_1.vitestCoverageV8Version,
vitestCoverageIstanbul: versions_1.vitestCoverageIstanbulVersion,
};
}
}
async function isVitestV1(tree) {
let installedVitestVersion = await getInstalledVitestVersionFromGraph();
if (!installedVitestVersion) {
installedVitestVersion = getInstalledVitestVersion(tree);
}
return (0, semver_1.major)(installedVitestVersion) === 1;
}
function getInstalledVitestVersion(tree) {
const pkgJson = (0, devkit_1.readJson)(tree, 'package.json');
const installedVitestVersion = pkgJson.dependencies && pkgJson.dependencies['vitest'];
if (!installedVitestVersion ||
installedVitestVersion === 'latest' ||
installedVitestVersion === 'beta') {
return (0, semver_1.clean)(versions_1.vitestVersion) ?? (0, semver_1.coerce)(versions_1.vitestVersion).version;
}
return ((0, semver_1.clean)(installedVitestVersion) ?? (0, semver_1.coerce)(installedVitestVersion).version);
}
async function getInstalledVitestVersionFromGraph() {
const graph = await (0, devkit_1.createProjectGraphAsync)();
const vitestDep = graph.externalNodes?.['npm:vitest'];
if (!vitestDep) {
return undefined;
}
return ((0, semver_1.clean)(vitestDep.data.version) ?? (0, semver_1.coerce)(vitestDep.data.version).version);
}