nx-mesh
Version:
GraphQL Mesh support for Nx
72 lines • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addProjectConfig = void 0;
const devkit_1 = require("@nrwl/devkit");
const add_swc_config_1 = require("@nrwl/js/src/utils/swc/add-swc-config");
const add_swc_dependencies_1 = require("@nrwl/js/src/utils/swc/add-swc-dependencies");
function addProjectConfig(tree, options) {
const { codegen, isApp, isLibrary, isSwc, projectDirectory, projectDistDirectory, projectMeshDirectory, projectName, tags, } = options;
if (isLibrary && isSwc) {
tree.delete(`${options.projectDirectory}/.babelrc`);
(0, add_swc_dependencies_1.addSwcDependencies)(tree);
(0, add_swc_config_1.addSwcConfig)(tree, projectDirectory);
}
const project = isLibrary
? (0, devkit_1.readProjectConfiguration)(tree, options.projectName)
: {
root: projectDirectory,
projectType: 'application',
sourceRoot: `${projectDirectory}/`,
targets: {},
tags,
};
const targets = Object.assign({}, project === null || project === void 0 ? void 0 : project.targets);
let buildExecutor = 'nx-mesh:build';
if (isApp) {
buildExecutor = `${buildExecutor}-gateway`;
}
if (isLibrary && isSwc) {
buildExecutor = `${buildExecutor}-swc`;
}
let buildOptions = {
dir: projectDirectory,
main: `${projectDirectory}/src/index.ts`,
outputPath: projectDistDirectory,
tsConfig: `${projectDirectory}/tsconfig.lib.json`,
};
if (isLibrary && codegen) {
buildOptions = Object.assign(Object.assign({}, buildOptions), { codegen: {
config: `${projectDirectory}/codegen.ts`,
} });
}
targets['build'] = {
executor: buildExecutor,
outputs: [projectMeshDirectory, '{options.outputPath}'],
options: buildOptions,
};
targets['serve'] = {
executor: 'nx-mesh:serve',
options: {
dev: true,
dir: projectDirectory,
},
};
targets['validate'] = {
executor: 'nx-mesh:validate',
options: {
dir: projectDirectory,
},
};
if (project) {
project.targets = targets;
}
if (isApp) {
(0, devkit_1.addProjectConfiguration)(tree, projectName, project);
}
else {
(0, devkit_1.updateProjectConfiguration)(tree, projectName, project);
}
}
exports.addProjectConfig = addProjectConfig;
exports.default = addProjectConfig;
//# sourceMappingURL=add-project-config.js.map