@nx/rsbuild
Version:
50 lines (49 loc) • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.configurationGenerator = configurationGenerator;
const devkit_1 = require("@nx/devkit");
const lib_1 = require("./lib");
const js_1 = require("@nx/js");
const init_1 = require("../init/init");
const versions_1 = require("../../utils/versions");
const path_1 = require("path");
async function configurationGenerator(tree, schema) {
const projectGraph = await (0, devkit_1.createProjectGraphAsync)();
const projects = (0, devkit_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
let project = projects.projects[schema.project];
if (!project) {
project = (0, devkit_1.readProjectConfiguration)(tree, schema.project);
if (!project) {
throw new Error(`Could not find project '${schema.project}'. Please choose a project that exists in the Nx Workspace.`);
}
}
const options = await (0, lib_1.normalizeOptions)(tree, schema, project);
const tasks = [];
const jsInitTask = await (0, js_1.initGenerator)(tree, {
...schema,
skipFormat: true,
tsConfigName: options.projectRoot === '.' ? 'tsconfig.json' : 'tsconfig.base.json',
});
tasks.push(jsInitTask);
const initTask = await (0, init_1.initGenerator)(tree, { skipFormat: true });
tasks.push(initTask);
if (options.skipValidation) {
const projectJson = (0, devkit_1.readProjectConfiguration)(tree, project.name);
if (projectJson.targets['build']) {
delete projectJson.targets['build'];
}
if (projectJson.targets['serve']) {
delete projectJson.targets['serve'];
}
if (projectJson.targets['dev']) {
delete projectJson.targets['dev'];
}
}
tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@rsbuild/core': versions_1.rsbuildVersion }));
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'files'), options.projectRoot, {
...options,
tpl: '',
});
return (0, devkit_1.runTasksInSerial)(...tasks);
}
exports.default = configurationGenerator;