UNPKG

@nx/gradle

Version:

The Nx Plugin for Gradle allows Gradle tasks to be run through Nx

65 lines (64 loc) 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDependencies = void 0; const devkit_1 = require("@nx/devkit"); const node_path_1 = require("node:path"); const get_gradle_report_1 = require("../utils/get-gradle-report"); const split_config_files_1 = require("../utils/split-config-files"); const createDependencies = async (_, context) => { const gradleFiles = findGradleFiles(context.filesToProcess); if (gradleFiles.length === 0) { return []; } const gradleDependenciesStart = performance.mark('gradleDependencies:start'); const { gradleFileToGradleProjectMap, gradleProjectNameToProjectRootMap, buildFileToDepsMap, gradleProjectToChildProjects, } = (0, get_gradle_report_1.getCurrentGradleReport)(); const dependencies = new Set(); for (const gradleFile of gradleFiles) { const gradleProject = gradleFileToGradleProjectMap.get(gradleFile); const projectName = Object.values(context.projects).find((project) => project.root === (0, node_path_1.dirname)(gradleFile))?.name; const dependedProjects = buildFileToDepsMap.get(gradleFile); if (projectName && dependedProjects?.size) { dependedProjects?.forEach((dependedProject) => { const targetProjectRoot = gradleProjectNameToProjectRootMap.get(dependedProject); const targetProjectName = Object.values(context.projects).find((project) => project.root === targetProjectRoot)?.name; if (targetProjectName) { const dependency = { source: projectName, target: targetProjectName, type: devkit_1.DependencyType.static, sourceFile: gradleFile, }; (0, devkit_1.validateDependency)(dependency, context); dependencies.add(dependency); } }); } gradleProjectToChildProjects.get(gradleProject)?.forEach((childProject) => { if (childProject) { const dependency = { source: projectName, target: childProject, type: devkit_1.DependencyType.static, sourceFile: gradleFile, }; (0, devkit_1.validateDependency)(dependency, context); dependencies.add(dependency); } }); } const gradleDependenciesEnd = performance.mark('gradleDependencies:end'); performance.measure('gradleDependencies', gradleDependenciesStart.name, gradleDependenciesEnd.name); return Array.from(dependencies); }; exports.createDependencies = createDependencies; function findGradleFiles(fileMap) { const gradleFiles = []; for (const [_, files] of Object.entries(fileMap.projectFileMap)) { for (const file of files) { if (split_config_files_1.GRADLE_BUILD_FILES.has((0, node_path_1.basename)(file.file))) { gradleFiles.push(file.file); } } } return gradleFiles; }