UNPKG

nx

Version:

Smart, Fast and Extensible Build System

82 lines 3.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildWorkspaceProjectNodes = void 0; const path_1 = require("path"); const fs_1 = require("fs"); const workspace_root_1 = require("nx/src/utils/workspace-root"); const nx_plugin_1 = require("nx/src/utils/nx-plugin"); const project_graph_utils_1 = require("nx/src/utils/project-graph-utils"); const fileutils_1 = require("nx/src/utils/fileutils"); function buildWorkspaceProjectNodes(ctx, builder, nxJson) { const toAdd = []; Object.keys(ctx.workspace.projects).forEach((key) => { const p = ctx.workspace.projects[key]; const projectRoot = (0, path_1.join)(workspace_root_1.workspaceRoot, p.root); if ((0, fs_1.existsSync)((0, path_1.join)(projectRoot, 'package.json'))) { p.targets = (0, project_graph_utils_1.mergeNpmScriptsWithTargets)(projectRoot, p.targets); const { nx } = (0, fileutils_1.readJsonFile)((0, path_1.join)(projectRoot, 'package.json')); if (nx === null || nx === void 0 ? void 0 : nx.tags) { p.tags = [...(p.tags || []), ...nx.tags]; } if (nx === null || nx === void 0 ? void 0 : nx.implicitDependencies) { p.implicitDependencies = [ ...(p.implicitDependencies || []), ...nx.implicitDependencies, ]; } if (nx === null || nx === void 0 ? void 0 : nx.namedInputs) { p.namedInputs = Object.assign(Object.assign({}, (p.namedInputs || {})), nx.namedInputs); } } p.targets = mergeNxDefaultTargetsWithNxTargets(p.targets, nxJson.targetDefaults); p.targets = (0, nx_plugin_1.mergePluginTargetsWithNxTargets)(p.root, p.targets, (0, nx_plugin_1.loadNxPlugins)(ctx.workspace.plugins)); const projectType = p.projectType === 'application' ? key.endsWith('-e2e') ? 'e2e' : 'app' : 'lib'; const tags = ctx.workspace.projects && ctx.workspace.projects[key] ? ctx.workspace.projects[key].tags || [] : []; toAdd.push({ name: key, type: projectType, data: Object.assign(Object.assign({}, p), { tags, files: ctx.fileMap[key] }), }); }); // Sort by root directory length (do we need this?) toAdd.sort((a, b) => { if (!a.data.root) return -1; if (!b.data.root) return -1; return a.data.root.length > b.data.root.length ? -1 : 1; }); toAdd.forEach((n) => { builder.addNode({ name: n.name, type: n.type, data: n.data, }); }); } exports.buildWorkspaceProjectNodes = buildWorkspaceProjectNodes; function mergeNxDefaultTargetsWithNxTargets(targets, defaultTargets) { for (const targetName in defaultTargets) { const target = targets === null || targets === void 0 ? void 0 : targets[targetName]; if (!target) { continue; } if (defaultTargets[targetName].inputs && !target.inputs) { target.inputs = defaultTargets[targetName].inputs; } if (defaultTargets[targetName].dependsOn && !target.dependsOn) { target.dependsOn = defaultTargets[targetName].dependsOn; } if (defaultTargets[targetName].outputs && !target.outputs) { target.outputs = defaultTargets[targetName].outputs; } } return targets; } //# sourceMappingURL=workspace-projects.js.map