Conditionally compile JS feature code

This commit is contained in:
Wilson Lin 2020-07-21 17:59:56 +10:00
parent b967e338ca
commit 6f3e1254de
2 changed files with 31 additions and 17 deletions

View File

@ -8,8 +8,11 @@ use crate::proc::MatchMode::*;
use crate::proc::range::ProcessorRange;
use memchr::memchr;
use crate::gen::codepoints::{WHITESPACE, Lookup};
#[cfg(feature = "js-esbuild")]
use std::sync::{Arc, Mutex};
#[cfg(feature = "js-esbuild")]
use esbuild_rs::TransformResult;
#[cfg(feature = "js-esbuild")]
use crossbeam::sync::WaitGroup;
pub mod checkpoint;
@ -42,6 +45,7 @@ pub enum MatchAction {
MatchOnly,
}
#[cfg(feature = "js-esbuild")]
pub struct JsMinSection {
pub src_range: ProcessorRange,
pub result: TransformResult,
@ -304,12 +308,15 @@ impl<'d> Processor<'d> {
self._shift(count);
}
#[cfg(feature = "js-esbuild")]
pub fn new_script_section(&self) -> (WaitGroup, Arc<Mutex<Vec<JsMinSection>>>) {
(self.script_wg.clone(), self.script_results.clone())
}
pub fn finish(self) -> usize {
debug_assert!(self.at_end());
#[cfg(feature = "js-esbuild")]
{
self.script_wg.wait();
let mut results = Arc::try_unwrap(self.script_results)
.unwrap_or_else(|_| panic!("failed to acquire script results"))
@ -329,6 +336,7 @@ impl<'d> Processor<'d> {
};
};
};
};
self.write_next
}
}

View File

@ -1,14 +1,20 @@
use crate::err::ProcessingResult;
use crate::proc::MatchAction::*;
use crate::proc::MatchMode::*;
use crate::proc::{Processor, JsMinSection};
use crate::proc::Processor;
#[cfg(feature = "js-esbuild")]
use crate::proc::JsMinSection;
use crate::cfg::Cfg;
#[cfg(feature = "js-esbuild")]
use crate::proc::checkpoint::Checkpoint;
#[cfg(feature = "js-esbuild")]
use esbuild_rs::{TransformOptionsBuilder, TransformOptions};
#[cfg(feature = "js-esbuild")]
use std::sync::Arc;
#[cfg(feature = "js-esbuild")]
use lazy_static::lazy_static;
#[cfg(feature = "js-esbuild")]
lazy_static! {
static ref TRANSFORM_OPTIONS: Arc<TransformOptions> = {
let mut builder = TransformOptionsBuilder::new();