mod error;
mod executor;
mod import_rewriter;
mod materialize_fs;
mod runtime_deps;
mod source_map;
mod type_checker;
mod virtual_project;
mod virtual_ts;
pub use error::{CorsaError, CorsaNotFoundError, CorsaResult, PackageManager};
pub use executor::CorsaExecutor;
pub use import_rewriter::{ImportRewriter, ImportSourceMap, OffsetAdjustment, RewriteResult};
pub use source_map::{CompositeSourceMap, SfcBlockRange, SfcSourceMap};
pub use type_checker::{
BatchTypeChecker, BatchTypeCheckerOptions, DeclarationEmitOptions, DeclarationEmitResult,
DeclarationOutput, TypeCheckResult, TypeChecker,
};
pub use virtual_project::{
OriginalPosition, VirtualFile, VirtualProject, VueDocumentVirtualTs,
generate_vue_document_virtual_ts,
};
pub use virtual_ts::VirtualTsGenerator;
use vize_carton::String;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SfcBlockType {
Template,
Script,
ScriptSetup,
Style,
}
impl SfcBlockType {
pub fn block_name(self) -> &'static str {
match self {
SfcBlockType::Template => "template",
SfcBlockType::Script => "script",
SfcBlockType::ScriptSetup => "scriptSetup",
SfcBlockType::Style => "style",
}
}
}
pub fn sfc_block_fallback_offset(
descriptor: &vize_atelier_sfc::SfcDescriptor<'_>,
) -> Option<(usize, SfcBlockType)> {
if let Some(setup) = descriptor.script_setup.as_ref() {
return Some((setup.loc.start, SfcBlockType::ScriptSetup));
}
if let Some(script) = descriptor.script.as_ref() {
return Some((script.loc.start, SfcBlockType::Script));
}
if let Some(template) = descriptor.template.as_ref() {
return Some((template.loc.start, SfcBlockType::Template));
}
None
}
#[derive(Debug, Clone)]
pub struct Diagnostic {
pub file: std::path::PathBuf,
pub line: u32,
pub column: u32,
pub message: String,
pub code: Option<u32>,
pub severity: u8,
pub block_type: Option<SfcBlockType>,
}