UNPKG

nx

Version:

The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.

31 lines (30 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLocalWorkspacePlugins = getLocalWorkspacePlugins; const fs_1 = require("fs"); const path_1 = require("path"); const fileutils_1 = require("../fileutils"); const workspace_root_1 = require("../workspace-root"); const plugin_capabilities_1 = require("./plugin-capabilities"); async function getLocalWorkspacePlugins(projectsConfiguration, nxJson) { const plugins = new Map(); for (const project of Object.values(projectsConfiguration.projects)) { const packageJsonPath = (0, path_1.join)(workspace_root_1.workspaceRoot, project.root, 'package.json'); if ((0, fs_1.existsSync)(packageJsonPath)) { const packageJson = (0, fileutils_1.readJsonFile)(packageJsonPath); const includeRuntimeCapabilities = nxJson?.plugins?.some((p) => (typeof p === 'string' ? p : p.plugin).startsWith(packageJson.name)); const capabilities = await (0, plugin_capabilities_1.getPluginCapabilities)(workspace_root_1.workspaceRoot, packageJson.name, projectsConfiguration.projects, includeRuntimeCapabilities); if (capabilities && (Object.keys(capabilities.executors ?? {}).length || Object.keys(capabilities.generators ?? {}).length || capabilities.projectGraphExtension || capabilities.projectInference)) { plugins.set(packageJson.name, { ...capabilities, name: packageJson.name, }); } } } return plugins; }