Skip to content

Commit 2dec7ff

Browse files
committed
✨ Make SARIF diagnostics conversion asynchronous
Refactored SARIF conversion to async and optimized imports for clarity.
1 parent a5c48f2 commit 2dec7ff

3 files changed

Lines changed: 13 additions & 9 deletions

File tree

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"blockslist",
2020
"cctx",
2121
"changeext",
22+
"chattypes",
2223
"Chunker",
2324
"chunkers",
2425
"cmds",
@@ -133,13 +134,15 @@
133134
"promptdom",
134135
"promptfoo",
135136
"promptjson",
137+
"promptrunner",
136138
"prompty",
137139
"pyodide",
138140
"quoteify",
139141
"qwen",
140142
"redteam",
141143
"RIPGREP",
142144
"RULEID",
145+
"sarif",
143146
"SARIFF",
144147
"scriptid",
145148
"sglang",

packages/cli/src/run.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ export async function runScriptInternal(
578578
: /\.ya?ml$/i.test(outAnnotations)
579579
? YAMLStringify(result.annotations)
580580
: /\.sarif$/i.test(outAnnotations)
581-
? convertDiagnosticsToSARIF(script, result.annotations)
581+
? await convertDiagnosticsToSARIF(script, result.annotations)
582582
: JSON.stringify(result.annotations, null, 2)
583583
)
584584
}
@@ -644,7 +644,7 @@ export async function runScriptInternal(
644644
if (sariff)
645645
await writeText(
646646
sariff,
647-
convertDiagnosticsToSARIF(script, result.annotations)
647+
await convertDiagnosticsToSARIF(script, result.annotations)
648648
)
649649
if (changelogf && result.changelogs?.length)
650650
await writeText(changelogf, result.changelogs.join("\n"))

packages/cli/src/sarif.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
import {
2-
SarifBuilder,
3-
SarifRunBuilder,
4-
SarifResultBuilder,
5-
SarifRuleBuilder,
6-
} from "node-sarif-builder"
71
import { relative } from "node:path"
82
import {
93
SARIFF_BUILDER_TOOL_DRIVER_NAME,
@@ -35,10 +29,17 @@ export function isSARIFFilename(f: string) {
3529
* @param issues - Array of diagnostic issues to convert. Each issue should include severity, message, filename, and range.
3630
* @returns A stringified SARIF JSON object representing the diagnostic issues, formatted with indentation for readability.
3731
*/
38-
export function convertDiagnosticsToSARIF(
32+
export async function convertDiagnosticsToSARIF(
3933
template: PromptScript,
4034
issues: Diagnostic[]
4135
) {
36+
const {
37+
SarifBuilder,
38+
SarifRunBuilder,
39+
SarifResultBuilder,
40+
SarifRuleBuilder,
41+
} = await import("node-sarif-builder")
42+
4243
// Initialize a SARIF run with tool driver information
4344
const sarifRunBuilder = new SarifRunBuilder().initSimple({
4445
toolDriverName: SARIFF_BUILDER_TOOL_DRIVER_NAME,

0 commit comments

Comments
 (0)