UNPKG

@nx/next

Version:

The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides: - Scaffolding for creating, building, serving, linting, and testing Next.js applications. - Integration wit

79 lines (78 loc) 2.97 kB
"use strict"; 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; }