From 885dd3dbf2d5f73e7d775ea484dc7985c6a05201 Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Sat, 23 Nov 2024 13:41:26 +0100 Subject: [PATCH] Add JS support to `LanguageComposition` recipe --- build.gradle.kts | 1 + .../java/org/openrewrite/LanguageComposition.java | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index f5b39f2..a7c96a2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { implementation("org.openrewrite:rewrite-python:$latest") implementation("org.openrewrite:rewrite-kotlin:$latest") implementation("org.openrewrite:rewrite-csharp:$latest") + implementation("org.openrewrite:rewrite-javascript:$latest") testRuntimeOnly("org.openrewrite:rewrite-java-17") } diff --git a/src/main/java/org/openrewrite/LanguageComposition.java b/src/main/java/org/openrewrite/LanguageComposition.java index be2a9cc..70c99bf 100644 --- a/src/main/java/org/openrewrite/LanguageComposition.java +++ b/src/main/java/org/openrewrite/LanguageComposition.java @@ -24,6 +24,7 @@ import org.openrewrite.groovy.tree.G; import org.openrewrite.hcl.tree.Hcl; import org.openrewrite.java.tree.J; +import org.openrewrite.javascript.tree.JS; import org.openrewrite.json.tree.Json; import org.openrewrite.kotlin.tree.K; import org.openrewrite.properties.tree.Properties; @@ -184,6 +185,18 @@ public TreeVisitor getScanner(Accumulator acc) { s.getClass().getName(), genericLineCount, hasParseFailure)); + } else if (s instanceof JS.CompilationUnit) { + Counts javaScriptCounts = acc.getFolderToLanguageToCounts() + .computeIfAbsent(folderPath, k -> new HashMap<>()) + .computeIfAbsent("JavaScript", k -> new Counts()); + javaScriptCounts.fileCount++; + javaScriptCounts.lineCount += genericLineCount; + perFileReport.insertRow(ctx, new LanguageCompositionPerFile.Row( + s.getSourcePath().toString(), + "JavaScript", + s.getClass().getName(), + genericLineCount, + hasParseFailure)); } else if (s instanceof J) { Counts javaCounts = acc.getFolderToLanguageToCounts() .computeIfAbsent(folderPath, k -> new HashMap<>())