From 4bfceb05ff6efa7001662d8fe7270fa05154d89d Mon Sep 17 00:00:00 2001 From: JohT <7671054+JohT@users.noreply.github.com> Date: Mon, 26 Aug 2024 20:45:52 +0200 Subject: [PATCH] Add statistics about resolved external Typescript modules --- ...lved_to_internal_ones_for_Typescript.cypher | 18 ++++++++++++++++++ scripts/reports/ExternalDependenciesCsv.sh | 2 ++ 2 files changed, 20 insertions(+) create mode 100644 cypher/External_Dependencies/List_external_modules_resolved_to_internal_ones_for_Typescript.cypher diff --git a/cypher/External_Dependencies/List_external_modules_resolved_to_internal_ones_for_Typescript.cypher b/cypher/External_Dependencies/List_external_modules_resolved_to_internal_ones_for_Typescript.cypher new file mode 100644 index 000000000..1d10146c3 --- /dev/null +++ b/cypher/External_Dependencies/List_external_modules_resolved_to_internal_ones_for_Typescript.cypher @@ -0,0 +1,18 @@ +// Statistics about how many ExternalModule nodes were found that match internal Module nodes + + MATCH (module:TS:Module)<-[resolved:RESOLVES_TO]-(external:TS:ExternalModule) +OPTIONAL MATCH (project:TS:Project)-[:CONTAINS]->(module) + WITH project.name AS projectName + ,count(DISTINCT module) AS resolvedModuleCount + ,COUNT { (modules:Module) } AS totalModuleCount + ,COUNT { (externalModules:ExternalModule) } AS totalExternalModuleCount + ,collect(DISTINCT module.fileName + ' -> ' + external.globalFqn)[0..4] AS resolvedExamples +RETURN projectName + ,resolvedModuleCount + ,totalModuleCount + ,round(100.0 / totalModuleCount + * resolvedModuleCount, 2) AS resolvedModulePercentage + ,totalExternalModuleCount + ,round(100.0 / totalExternalModuleCount + * resolvedModuleCount, 2) AS resolvedExternalModulePercentage + ,resolvedExamples \ No newline at end of file diff --git a/scripts/reports/ExternalDependenciesCsv.sh b/scripts/reports/ExternalDependenciesCsv.sh index db854e644..adc8369d0 100755 --- a/scripts/reports/ExternalDependenciesCsv.sh +++ b/scripts/reports/ExternalDependenciesCsv.sh @@ -72,5 +72,7 @@ execute_cypher "${EXTERNAL_DEPENDENCIES_CYPHER_DIR}/External_namespace_usage_per execute_cypher "${EXTERNAL_DEPENDENCIES_CYPHER_DIR}/External_module_usage_per_internal_module_aggregated_for_Typescript.cypher" > "${FULL_REPORT_DIRECTORY}/External_module_usage_per_internal_module_aggregated_for_Typescript.csv" execute_cypher "${EXTERNAL_DEPENDENCIES_CYPHER_DIR}/External_module_usage_per_internal_module_distribution_for_Typescript.cypher" > "${FULL_REPORT_DIRECTORY}/External_module_usage_per_internal_module_distribution_for_Typescript.csv" +execute_cypher "${EXTERNAL_DEPENDENCIES_CYPHER_DIR}/List_external_modules_resolved_to_internal_ones_for_Typescript.cypher" > "${FULL_REPORT_DIRECTORY}/External_modules_resolved_to_internal_ones_for_Typescript.csv" + # Clean-up after report generation. Empty reports will be deleted. source "${SCRIPTS_DIR}/cleanupAfterReportGeneration.sh" "${FULL_REPORT_DIRECTORY}" \ No newline at end of file