use std::io;
use hurl_core::input::Input;
use crate::runner::{HurlResult, Output};
use crate::util::term::Stdout;
pub fn write_json(
hurl_result: &HurlResult,
content: &str,
filename_in: &Input,
filename_out: Option<&Output>,
stdout: &mut Stdout,
append: bool,
) -> Result<(), io::Error> {
let response_dir = None;
let secrets = [];
let json_result = hurl_result.to_json(content, filename_in, response_dir, &secrets)?;
let serialized = serde_json::to_string(&json_result)?;
let bytes = format!("{serialized}\n");
let bytes = bytes.into_bytes();
match filename_out {
Some(out) => out.write(&bytes, stdout, append)?,
None => Output::Stdout.write(&bytes, stdout, append)?,
}
Ok(())
}