mago_reporting/internal/emitter/
json.rs1use termcolor::WriteColor;
2
3use mago_interner::ThreadedInterner;
4use mago_source::SourceManager;
5
6use crate::IssueCollection;
7use crate::Level;
8use crate::error::ReportingError;
9use crate::internal::Expandable;
10
11pub fn json_format(
12 writer: &mut dyn WriteColor,
13 sources: &SourceManager,
14 interner: &ThreadedInterner,
15 issues: IssueCollection,
16) -> Result<Option<Level>, ReportingError> {
17 let highest_level = issues.get_highest_level();
18 let issues = issues.expand(sources, interner)?;
19
20 serde_json::to_writer_pretty(writer, &issues)?;
21
22 Ok(highest_level)
23}