use std::sync::Arc;
pub mod minify;
pub mod parse;
pub mod stringify;
pub mod transform;
use rspack_sources::SourceMap;
use swc_core::common::{GLOBALS, Globals, SourceMap as SwcSourceMap};
#[derive(Default)]
pub struct JavaScriptCompiler {
globals: Globals,
cm: Arc<SwcSourceMap>,
}
impl JavaScriptCompiler {
pub fn new() -> Self {
Self::default()
}
fn run<R>(&self, op: impl FnOnce() -> R) -> R {
GLOBALS.set(&self.globals, op)
}
}
#[derive(Debug)]
pub struct TransformOutput {
pub code: String,
pub map: Option<SourceMap>,
pub diagnostics: Vec<String>,
}
impl TransformOutput {
pub fn with_diagnostics(mut self, diagnostics: Vec<String>) -> Self {
self.diagnostics = diagnostics;
self
}
}