swamp_script_error_report/
script_resolve.rs1use crate::ScriptResolveError;
2use crate::analyze::build_analyzer_error;
3use crate::dep::build_dep_loader_error;
4use crate::dep::build_dependency_error;
5use crate::loader::build_loader_error;
6use std::io::stderr;
7use std::path::Path;
8use swamp_script_source_map::SourceMap;
9
10use crate::Builder;
11#[must_use]
12pub fn build_script_error(err: &ScriptResolveError) -> Builder<usize> {
13 match err {
14 ScriptResolveError::AnalyzerError(err) => build_analyzer_error(err),
15 ScriptResolveError::DepLoaderError(err) => build_dep_loader_error(err),
16 ScriptResolveError::DependencyError(err) => build_dependency_error(err),
17 ScriptResolveError::LoaderError(err) => build_loader_error(err),
18 }
19}
20
21pub fn show_script_resolve_error(
24 err: &ScriptResolveError,
25 source_map: &SourceMap,
26 current_dir: &Path,
27) {
28 let builder = build_script_error(err);
29 let report = builder.build();
30 report.print(source_map, current_dir, stderr()).unwrap();
31}