@nx/gradle 20.3.0-canary.20241217-ee4de0b → 20.3.0-canary.20241218-fb40366
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/gradle",
|
3
|
-
"version": "20.3.0-canary.
|
3
|
+
"version": "20.3.0-canary.20241218-fb40366",
|
4
4
|
"private": false,
|
5
5
|
"description": "The Nx Plugin for Gradle allows Gradle tasks to be run through Nx",
|
6
6
|
"repository": {
|
@@ -34,7 +34,7 @@
|
|
34
34
|
"migrations": "./migrations.json"
|
35
35
|
},
|
36
36
|
"dependencies": {
|
37
|
-
"@nx/devkit": "20.3.0-canary.
|
37
|
+
"@nx/devkit": "20.3.0-canary.20241218-fb40366"
|
38
38
|
},
|
39
39
|
"publishConfig": {
|
40
40
|
"access": "public"
|
@@ -8,6 +8,18 @@ export interface GradleReport {
|
|
8
8
|
gradleProjectNameToProjectRootMap: Map<string, string>;
|
9
9
|
gradleProjectToChildProjects: Map<string, string[]>;
|
10
10
|
}
|
11
|
+
export interface GradleReportJSON {
|
12
|
+
hash: string;
|
13
|
+
gradleFileToGradleProjectMap: Record<string, string>;
|
14
|
+
buildFileToDepsMap: Record<string, string>;
|
15
|
+
gradleFileToOutputDirsMap: Record<string, Record<string, string>>;
|
16
|
+
gradleProjectToTasksTypeMap: Record<string, Record<string, string>>;
|
17
|
+
gradleProjectToTasksMap: Record<string, Array<String>>;
|
18
|
+
gradleProjectToProjectName: Record<string, string>;
|
19
|
+
gradleProjectNameToProjectRootMap: Record<string, string>;
|
20
|
+
gradleProjectToChildProjects: Record<string, string[]>;
|
21
|
+
}
|
22
|
+
export declare function writeGradleReportToCache(cachePath: string, results: GradleReport): void;
|
11
23
|
export declare function getCurrentGradleReport(): GradleReport;
|
12
24
|
/**
|
13
25
|
* This function populates the gradle report cache.
|
@@ -1,5 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.writeGradleReportToCache = writeGradleReportToCache;
|
3
4
|
exports.getCurrentGradleReport = getCurrentGradleReport;
|
4
5
|
exports.populateGradleReport = populateGradleReport;
|
5
6
|
exports.processProjectReports = processProjectReports;
|
@@ -10,8 +11,52 @@ const workspace_context_1 = require("nx/src/utils/workspace-context");
|
|
10
11
|
const path_1 = require("path");
|
11
12
|
const split_config_files_1 = require("./split-config-files");
|
12
13
|
const get_project_report_lines_1 = require("./get-project-report-lines");
|
14
|
+
const cache_directory_1 = require("nx/src/utils/cache-directory");
|
15
|
+
function readGradleReportCache(cachePath, hash) {
|
16
|
+
const gradleReportJson = (0, node_fs_1.existsSync)(cachePath)
|
17
|
+
? (0, devkit_1.readJsonFile)(cachePath)
|
18
|
+
: undefined;
|
19
|
+
if (!gradleReportJson || gradleReportJson.hash !== hash) {
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
let results = {
|
23
|
+
gradleFileToGradleProjectMap: new Map(Object.entries(gradleReportJson['gradleFileToGradleProjectMap'])),
|
24
|
+
buildFileToDepsMap: new Map(Object.entries(gradleReportJson['buildFileToDepsMap'])),
|
25
|
+
gradleFileToOutputDirsMap: new Map(Object.entries(gradleReportJson['gradleFileToOutputDirsMap']).map(([key, value]) => [key, new Map(Object.entries(value))])),
|
26
|
+
gradleProjectToTasksTypeMap: new Map(Object.entries(gradleReportJson['gradleProjectToTasksTypeMap']).map(([key, value]) => [key, new Map(Object.entries(value))])),
|
27
|
+
gradleProjectToTasksMap: new Map(Object.entries(gradleReportJson['gradleProjectToTasksMap']).map(([key, value]) => [key, new Set(value)])),
|
28
|
+
gradleProjectToProjectName: new Map(Object.entries(gradleReportJson['gradleProjectToProjectName'])),
|
29
|
+
gradleProjectNameToProjectRootMap: new Map(Object.entries(gradleReportJson['gradleProjectNameToProjectRootMap'])),
|
30
|
+
gradleProjectToChildProjects: new Map(Object.entries(gradleReportJson['gradleProjectToChildProjects'])),
|
31
|
+
};
|
32
|
+
return results;
|
33
|
+
}
|
34
|
+
function writeGradleReportToCache(cachePath, results) {
|
35
|
+
let gradleReportJson = {
|
36
|
+
hash: gradleCurrentConfigHash,
|
37
|
+
gradleFileToGradleProjectMap: Object.fromEntries(results.gradleFileToGradleProjectMap),
|
38
|
+
buildFileToDepsMap: Object.fromEntries(results.buildFileToDepsMap),
|
39
|
+
gradleFileToOutputDirsMap: Object.fromEntries(Array.from(results.gradleFileToOutputDirsMap).map(([key, value]) => [
|
40
|
+
key,
|
41
|
+
Object.fromEntries(value),
|
42
|
+
])),
|
43
|
+
gradleProjectToTasksTypeMap: Object.fromEntries(Array.from(results.gradleProjectToTasksTypeMap).map(([key, value]) => [
|
44
|
+
key,
|
45
|
+
Object.fromEntries(value),
|
46
|
+
])),
|
47
|
+
gradleProjectToTasksMap: Object.fromEntries(Array.from(results.gradleProjectToTasksMap).map(([key, value]) => [
|
48
|
+
key,
|
49
|
+
Array.from(value),
|
50
|
+
])),
|
51
|
+
gradleProjectToProjectName: Object.fromEntries(results.gradleProjectToProjectName),
|
52
|
+
gradleProjectNameToProjectRootMap: Object.fromEntries(results.gradleProjectNameToProjectRootMap),
|
53
|
+
gradleProjectToChildProjects: Object.fromEntries(results.gradleProjectToChildProjects),
|
54
|
+
};
|
55
|
+
(0, devkit_1.writeJsonFile)(cachePath, gradleReportJson);
|
56
|
+
}
|
13
57
|
let gradleReportCache;
|
14
58
|
let gradleCurrentConfigHash;
|
59
|
+
let gradleReportCachePath = (0, node_path_1.join)(cache_directory_1.workspaceDataDirectory, 'gradle-report.hash');
|
15
60
|
function getCurrentGradleReport() {
|
16
61
|
if (!gradleReportCache) {
|
17
62
|
throw new devkit_1.AggregateCreateNodesError([
|
@@ -37,7 +82,9 @@ async function populateGradleReport(workspaceRoot, gradlewFiles) {
|
|
37
82
|
const gradleConfigHash = await (0, workspace_context_1.hashWithWorkspaceContext)(workspaceRoot, [
|
38
83
|
split_config_files_1.gradleConfigAndTestGlob,
|
39
84
|
]);
|
40
|
-
|
85
|
+
gradleReportCache ??= readGradleReportCache(gradleReportCachePath, gradleConfigHash);
|
86
|
+
if (gradleReportCache &&
|
87
|
+
(!gradleCurrentConfigHash || gradleConfigHash === gradleCurrentConfigHash)) {
|
41
88
|
return;
|
42
89
|
}
|
43
90
|
const gradleProjectReportStart = performance.mark('gradleProjectReport:start');
|
@@ -50,6 +97,7 @@ async function populateGradleReport(workspaceRoot, gradlewFiles) {
|
|
50
97
|
performance.measure('gradleProjectReport', gradleProjectReportStart.name, gradleProjectReportEnd.name);
|
51
98
|
gradleCurrentConfigHash = gradleConfigHash;
|
52
99
|
gradleReportCache = processProjectReports(projectReportLines);
|
100
|
+
writeGradleReportToCache(gradleReportCachePath, gradleReportCache);
|
53
101
|
}
|
54
102
|
function processProjectReports(projectReportLines) {
|
55
103
|
/**
|