@nx/vite
Version:
66 lines (65 loc) • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVitestDependenciesVersionsToInstall = getVitestDependenciesVersionsToInstall;
exports.isVitestV3 = isVitestV3;
exports.isVitestV2 = isVitestV2;
exports.getInstalledVitestVersion = getInstalledVitestVersion;
exports.getInstalledVitestVersionFromGraph = getInstalledVitestVersionFromGraph;
const devkit_1 = require("@nx/devkit");
const semver_1 = require("semver");
const versions_1 = require("./versions");
async function getVitestDependenciesVersionsToInstall(tree) {
if (await isVitestV3(tree)) {
return {
vitest: versions_1.vitestV3Version,
vitestCoverageV8: versions_1.vitestV3CoverageV8Version,
vitestCoverageIstanbul: versions_1.vitestV3CoverageIstanbulVersion,
};
}
else if (await isVitestV2(tree)) {
return {
vitest: versions_1.vitestV2Version,
vitestCoverageV8: versions_1.vitestV2CoverageV8Version,
vitestCoverageIstanbul: versions_1.vitestV2CoverageIstanbulVersion,
};
}
else {
// Default to latest (v4)
return {
vitest: versions_1.vitestVersion,
vitestCoverageV8: versions_1.vitestCoverageV8Version,
vitestCoverageIstanbul: versions_1.vitestCoverageIstanbulVersion,
};
}
}
async function isVitestV3(tree) {
let installedVitestVersion = await getInstalledVitestVersionFromGraph();
if (!installedVitestVersion) {
installedVitestVersion = getInstalledVitestVersion(tree);
}
return (0, semver_1.major)(installedVitestVersion) === 3;
}
async function isVitestV2(tree) {
let installedVitestVersion = await getInstalledVitestVersionFromGraph();
if (!installedVitestVersion) {
installedVitestVersion = getInstalledVitestVersion(tree);
}
return (0, semver_1.major)(installedVitestVersion) === 2;
}
function getInstalledVitestVersion(tree) {
const installedVitestVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, '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);
}