@nx/next
Version:
66 lines (65 loc) • 2.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.nextInitGenerator = nextInitGenerator;
exports.nextInitGeneratorInternal = nextInitGeneratorInternal;
const internal_1 = require("@nx/devkit/internal");
const devkit_1 = require("@nx/devkit");
const internal_2 = require("@nx/react/internal");
const add_gitignore_entry_1 = require("../../utils/add-gitignore-entry");
const versions_1 = require("../../utils/versions");
const version_utils_1 = require("../../utils/version-utils");
const assert_supported_next_version_1 = require("../../utils/assert-supported-next-version");
async function updateDependencies(host, schema) {
const tasks = [];
tasks.push((0, devkit_1.removeDependenciesFromPackageJson)(host, ['@nx/next'], []));
const versions = await (0, version_utils_1.getNextDependenciesVersionsToInstall)(host, await (0, internal_2.isReact18)(host));
const reactVersions = await (0, internal_2.getReactDependenciesVersionsToInstall)(host);
tasks.push((0, devkit_1.addDependenciesToPackageJson)(host, {
next: versions.next,
react: reactVersions.react,
'react-dom': reactVersions['react-dom'],
}, {
'@nx/next': versions_1.nxVersion,
}, undefined, schema.keepExistingVersions ?? true));
return (0, devkit_1.runTasksInSerial)(...tasks);
}
function nextInitGenerator(tree, schema) {
return nextInitGeneratorInternal(tree, { addPlugin: false, ...schema });
}
async function nextInitGeneratorInternal(host, schema) {
(0, assert_supported_next_version_1.assertSupportedNextVersion)(host);
const nxJson = (0, devkit_1.readNxJson)(host);
const addPluginDefault = process.env.NX_ADD_PLUGINS !== 'false' &&
nxJson.useInferencePlugins !== false;
schema.addPlugin ??= addPluginDefault;
if (schema.addPlugin) {
const { createNodesV2, } = require('../../plugins/plugin');
await (0, internal_1.addPlugin)(host, await (0, devkit_1.createProjectGraphAsync)(), '@nx/next/plugin', createNodesV2, {
startTargetName: ['start', 'next:start', 'next-start'],
buildTargetName: ['build', 'next:build', 'next-build'],
devTargetName: ['dev', 'next:dev', 'next-dev'],
serveStaticTargetName: [
'serve-static',
'next:serve-static',
'next-serve-static',
],
buildDepsTargetName: [
'build-deps',
'next:build-deps',
'next-build-deps',
],
watchDepsTargetName: [
'watch-deps',
'next:watch-deps',
'next-watch-deps',
],
}, schema.updatePackageScripts);
}
(0, add_gitignore_entry_1.addGitIgnoreEntry)(host);
let installTask = () => { };
if (!schema.skipPackageJson) {
installTask = await updateDependencies(host, schema);
}
return installTask;
}
exports.default = nextInitGenerator;