@nx/next
Version:
79 lines (78 loc) • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNextDependenciesVersionsToInstall = getNextDependenciesVersionsToInstall;
exports.getEslintConfigNextDependenciesVersionsToInstall = getEslintConfigNextDependenciesVersionsToInstall;
exports.isNext16 = isNext16;
exports.isNext15 = isNext15;
exports.isNext14 = isNext14;
exports.getInstalledNextVersion = getInstalledNextVersion;
exports.getInstalledNextVersionFromGraph = getInstalledNextVersionFromGraph;
const devkit_1 = require("@nx/devkit");
const semver_1 = require("semver");
const versions_1 = require("./versions");
async function getNextDependenciesVersionsToInstall(tree, isReact18 = false) {
if (await isNext14(tree)) {
return {
next: versions_1.next14Version,
};
}
else if (await isNext15(tree)) {
return {
next: versions_1.next15Version,
};
}
else {
return {
next: versions_1.nextVersion,
};
}
}
async function getEslintConfigNextDependenciesVersionsToInstall(tree) {
if (await isNext15(tree)) {
return versions_1.eslintConfigNext15Version;
}
else if (await isNext14(tree)) {
return versions_1.eslintConfigNext14Version;
}
else {
return versions_1.eslintConfigNextVersion;
}
}
async function isNext16(tree) {
let installedNextVersion = await getInstalledNextVersionFromGraph();
if (!installedNextVersion) {
installedNextVersion = getInstalledNextVersion(tree);
}
return (0, semver_1.major)(installedNextVersion) === 16;
}
async function isNext15(tree) {
let installedNextVersion = await getInstalledNextVersionFromGraph();
if (!installedNextVersion) {
installedNextVersion = getInstalledNextVersion(tree);
}
return (0, semver_1.major)(installedNextVersion) === 15;
}
async function isNext14(tree) {
let installedNextVersion = await getInstalledNextVersionFromGraph();
if (!installedNextVersion) {
installedNextVersion = getInstalledNextVersion(tree);
}
return (0, semver_1.major)(installedNextVersion) === 14;
}
function getInstalledNextVersion(tree) {
const installedNextVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'next');
if (!installedNextVersion ||
installedNextVersion === 'latest' ||
installedNextVersion === 'next') {
return (0, semver_1.clean)(versions_1.nextVersion) ?? (0, semver_1.coerce)(versions_1.nextVersion).version;
}
return (0, semver_1.clean)(installedNextVersion) ?? (0, semver_1.coerce)(installedNextVersion).version;
}
async function getInstalledNextVersionFromGraph() {
const graph = await (0, devkit_1.createProjectGraphAsync)();
const nextDep = graph.externalNodes?.['npm:next'];
if (!nextDep) {
return undefined;
}
return (0, semver_1.clean)(nextDep.data.version) ?? (0, semver_1.coerce)(nextDep.data.version).version;
}