@nx/nuxt
Version:
86 lines (85 loc) • 3.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNuxtDependenciesVersionsToInstall = getNuxtDependenciesVersionsToInstall;
exports.isNuxtV3 = isNuxtV3;
exports.isNuxtV4 = isNuxtV4;
exports.getInstalledNuxtVersion = getInstalledNuxtVersion;
exports.getInstalledNuxtMajorVersion = getInstalledNuxtMajorVersion;
exports.getInstalledNuxtVersionFromGraph = getInstalledNuxtVersionFromGraph;
const devkit_1 = require("@nx/devkit");
const semver_1 = require("semver");
const versions_1 = require("./versions");
async function getNuxtDependenciesVersionsToInstall(tree) {
if (await isNuxtV3(tree)) {
return {
nuxt: versions_1.nuxtV3Version,
nuxtKit: versions_1.nuxtKitV3Version,
h3: versions_1.h3Version,
nuxtDevtools: versions_1.nuxtDevtoolsV3Version,
nuxtUiTemplates: versions_1.nuxtUiTemplatesVersion,
};
}
else {
// Default to latest (v4)
return {
nuxt: versions_1.nuxtVersion,
nuxtKit: versions_1.nuxtKitVersion,
h3: versions_1.h3Version,
nuxtDevtools: versions_1.nuxtDevtoolsVersion,
nuxtUiTemplates: versions_1.nuxtUiTemplatesVersion,
};
}
}
async function isNuxtV3(tree) {
let installedNuxtVersion = await getInstalledNuxtVersionFromGraph();
if (!installedNuxtVersion) {
installedNuxtVersion = getInstalledNuxtVersion(tree);
}
if (!installedNuxtVersion) {
return false; // No Nuxt installed, default to v4
}
return (0, semver_1.major)(installedNuxtVersion) === 3;
}
async function isNuxtV4(tree) {
let installedNuxtVersion = await getInstalledNuxtVersionFromGraph();
if (!installedNuxtVersion) {
installedNuxtVersion = getInstalledNuxtVersion(tree);
}
if (!installedNuxtVersion) {
return true; // No Nuxt installed, default to v4
}
return (0, semver_1.major)(installedNuxtVersion) >= 4;
}
function getInstalledNuxtVersion(tree) {
const installedNuxtVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'nuxt');
if (!installedNuxtVersion ||
installedNuxtVersion === 'latest' ||
installedNuxtVersion === 'beta') {
return undefined;
}
return (0, semver_1.clean)(installedNuxtVersion) ?? (0, semver_1.coerce)(installedNuxtVersion)?.version;
}
function getInstalledNuxtMajorVersion(tree) {
const installedNuxtVersion = getInstalledNuxtVersion(tree);
if (!installedNuxtVersion) {
return undefined;
}
const installedMajor = (0, semver_1.major)(installedNuxtVersion);
if (installedMajor < 3 || installedMajor > 4) {
return undefined;
}
return installedMajor;
}
async function getInstalledNuxtVersionFromGraph() {
try {
const graph = await (0, devkit_1.createProjectGraphAsync)();
const nuxtDep = graph.externalNodes?.['npm:nuxt'];
if (!nuxtDep) {
return undefined;
}
return (0, semver_1.clean)(nuxtDep.data.version) ?? (0, semver_1.coerce)(nuxtDep.data.version)?.version;
}
catch {
return undefined;
}
}