swamp_script_error_report/
script_resolve.rs

1use 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
21/// # Panics
22///
23pub 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}