@nx/next
Version:
47 lines (46 loc) • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNextDependenciesVersionsToInstall = getNextDependenciesVersionsToInstall;
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 {
return {
next: versions_1.nextVersion,
};
}
}
async function isNext14(tree) {
let installedNextVersion = await getInstalledNextVersionFromGraph();
if (!installedNextVersion) {
installedNextVersion = getInstalledNextVersion(tree);
}
return (0, semver_1.major)(installedNextVersion) === 14;
}
function getInstalledNextVersion(tree) {
const pkgJson = (0, devkit_1.readJson)(tree, 'package.json');
const installedNextVersion = pkgJson.dependencies && pkgJson.dependencies['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;
}