@jnxplus/nx-gradle
Version:
[](https://badge.fury.io/js/@jnxplus%2Fnx-gradle)
52 lines • 2.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDependencies = void 0;
const devkit_1 = require("@nx/devkit");
const path = require("path");
const utils_1 = require("../utils");
const graph_utils_1 = require("./graph-utils");
const createDependencies = (_, context) => {
const results = [];
const gradleRootDirectory = (0, utils_1.getGradleRootDirectory)();
const projects = (0, graph_utils_1.getGradleProjects)();
Object.keys(context.filesToProcess.projectFileMap).forEach((source) => {
Object.values(context.filesToProcess.projectFileMap[source]).forEach((fileData) => {
const filePath = fileData.file;
if (path.basename(filePath) === 'build.gradle' ||
path.basename(filePath) === 'build.gradle.kts') {
const project = projects.find((element) => (0, devkit_1.joinPathFragments)(gradleRootDirectory, element.relativePath, 'build.gradle') === filePath ||
(0, devkit_1.joinPathFragments)(gradleRootDirectory, element.relativePath, 'build.gradle.kts') === filePath);
if (!project) {
throw new Error(`Can't find project for file: ${filePath}`);
}
const buildFile = project.isBuildGradleExists
? 'build.gradle'
: 'build.gradle.kts';
const projectSourceFile = (0, devkit_1.joinPathFragments)(gradleRootDirectory, project.relativePath, buildFile);
if (project.parentProjectName) {
const newDependency = {
source: project.name,
target: project.parentProjectName,
sourceFile: projectSourceFile,
type: devkit_1.DependencyType.static,
};
(0, devkit_1.validateDependency)(newDependency, context);
results.push(newDependency);
}
for (const dependency of project.dependencies) {
const newDependency = {
source: project.name,
target: dependency.name,
sourceFile: projectSourceFile,
type: devkit_1.DependencyType.static,
};
(0, devkit_1.validateDependency)(newDependency, context);
results.push(newDependency);
}
}
});
});
return results;
};
exports.createDependencies = createDependencies;
//# sourceMappingURL=create-dependencies.js.map