cloudcover_javascript/
error.rs1use std::{io, path::PathBuf, process::ExitStatus};
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum JavaScriptAnalysisError {
7 #[error("path is not a directory: {}", path.display())]
8 NotDirectory { path: PathBuf },
9 #[error("path is not valid UTF-8: {}", path.display())]
10 NonUtf8Path { path: PathBuf },
11 #[error("Node.js is required to analyze JavaScript or TypeScript: {0}")]
12 NodeUnavailable(#[source] io::Error),
13 #[error("Node.js analyzer exited with {status}: {stderr}")]
14 NodeFailed { status: ExitStatus, stderr: String },
15 #[error("failed to parse JavaScript analyzer response: {0}")]
16 InvalidResponse(#[source] serde_json::Error),
17 #[error("{0}")]
18 Analyzer(String),
19}