Skip to main content

cloudcover_javascript/
error.rs

1use 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}