use crate::ScriptResolveError;
use crate::analyze::build_analyzer_error;
use crate::dep::build_dep_loader_error;
use crate::dep::build_dependency_error;
use crate::loader::build_loader_error;
use source_map_cache::SourceMap;
use std::io::stderr;
use std::path::Path;
use crate::Builder;
#[must_use]
pub fn build_script_error(err: &ScriptResolveError) -> Builder<usize> {
match err {
ScriptResolveError::AnalyzerError(err) => build_analyzer_error(err),
ScriptResolveError::DepLoaderError(err) => build_dep_loader_error(err),
ScriptResolveError::DependencyError(err) => build_dependency_error(err),
ScriptResolveError::LoaderError(err) => build_loader_error(err),
}
}
pub fn show_script_resolve_error(
err: &ScriptResolveError,
source_map: &SourceMap,
current_dir: &Path,
) {
let builder = build_script_error(err);
let report = builder.build();
report.print(source_map, current_dir, stderr()).unwrap();
}