swamp_error_report/
script_resolve.rs

1/*
2 * Copyright (c) Peter Bjorklund. All rights reserved. https://github.com/swamp/swamp
3 * Licensed under the MIT License. See LICENSE in the project root for license information.
4 */
5use crate::ScriptResolveError;
6use crate::analyze::build_analyzer_error;
7use crate::dep::build_dep_loader_error;
8use crate::dep::build_dependency_error;
9use crate::loader::build_loader_error;
10use source_map_cache::SourceMap;
11use std::io::stderr;
12use std::path::Path;
13
14use crate::Builder;
15#[must_use]
16pub fn build_script_error(err: &ScriptResolveError) -> Builder<usize> {
17    match err {
18        ScriptResolveError::AnalyzerError(err) => build_analyzer_error(err),
19        ScriptResolveError::DepLoaderError(err) => build_dep_loader_error(err),
20        ScriptResolveError::DependencyError(err) => build_dependency_error(err),
21        ScriptResolveError::LoaderError(err) => build_loader_error(err),
22    }
23}
24
25/// # Panics
26///
27pub fn show_script_resolve_error(
28    err: &ScriptResolveError,
29    source_map: &SourceMap,
30    current_dir: &Path,
31) {
32    let builder = build_script_error(err);
33    let report = builder.build();
34    report.print(source_map, current_dir, stderr()).unwrap();
35}