|
1 | 1 | use indexmap::IndexSet; |
2 | 2 | use regex::Regex; |
3 | 3 | use std::collections::{HashMap, HashSet}; |
4 | | -use std::sync::{LazyLock, RwLock}; |
| 4 | +use std::sync::LazyLock; |
5 | 5 | use swc_core::atoms::Atom; |
6 | 6 | use swc_core::common::{BytePos, Span, SyntaxContext, DUMMY_SP}; |
7 | 7 | use swc_core::ecma::visit::{Visit, VisitMutWith, VisitWith}; |
@@ -65,8 +65,6 @@ static TRANSPILLED_FIELDS: LazyLock<HashSet<String>> = LazyLock::new(|| { |
65 | 65 | set |
66 | 66 | }); |
67 | 67 |
|
68 | | -static CONFIG_CACHE: RwLock<Option<TransformConfig>> = RwLock::new(None); |
69 | | - |
70 | 68 | #[derive(Deserialize, Clone, Debug)] |
71 | 69 | #[serde(rename_all = "camelCase")] |
72 | 70 | pub struct TransformConfig { |
@@ -406,39 +404,14 @@ impl<'a> Visit for CollectIdentifiersVisitor<'a> { |
406 | 404 | pub fn process_transform(program: Program, metadata: TransformPluginProgramMetadata) -> Program { |
407 | 405 | let config_str = metadata.get_transform_plugin_config().unwrap_or_default(); |
408 | 406 |
|
409 | | - let ts_config: Option<TransformConfig> = serde_json::from_str(&config_str).ok(); |
410 | | - |
411 | | - if let Some(new_config) = ts_config { |
412 | | - let mut config_lock = CONFIG_CACHE.write().unwrap(); |
413 | | - *config_lock = Some(new_config.clone()); |
414 | | - return apply_transform(program, &new_config, metadata.source_map); |
415 | | - } |
416 | | - |
417 | | - if let Some(cached_config) = CONFIG_CACHE.read().unwrap().as_ref() { |
418 | | - return apply_transform(program, cached_config, metadata.source_map); |
419 | | - } |
420 | | - |
421 | | - apply_transform( |
422 | | - program, |
423 | | - &TransformConfig { |
424 | | - cube_names: HashSet::new(), |
425 | | - cube_symbols: HashMap::new(), |
426 | | - context_symbols: HashMap::new(), |
427 | | - }, |
428 | | - metadata.source_map, |
429 | | - ) |
430 | | -} |
| 407 | + let ts_config: TransformConfig = |
| 408 | + serde_json::from_str(&config_str).expect("Incorrect plugin configuration"); |
431 | 409 |
|
432 | | -fn apply_transform( |
433 | | - program: Program, |
434 | | - config: &TransformConfig, |
435 | | - source_map: PluginSourceMapProxy, |
436 | | -) -> Program { |
437 | 410 | let visitor = TransformVisitor { |
438 | | - cube_names: config.cube_names.clone(), |
439 | | - cube_symbols: config.cube_symbols.clone(), |
440 | | - context_symbols: config.context_symbols.clone(), |
441 | | - source_map: Some(source_map), |
| 411 | + cube_names: ts_config.cube_names, |
| 412 | + cube_symbols: ts_config.cube_symbols, |
| 413 | + context_symbols: ts_config.context_symbols, |
| 414 | + source_map: Some(metadata.source_map), |
442 | 415 | }; |
443 | 416 |
|
444 | 417 | program.apply(&mut visit_mut_pass(visitor)) |
|
0 commit comments