From 4cb7f05cfb2673a8741af62f34ae6870e21e2755 Mon Sep 17 00:00:00 2001 From: magic-akari Date: Sat, 7 Sep 2024 03:26:52 +0800 Subject: [PATCH] chore: clean code --- Cargo.lock | 23 ----------------------- crates/swc_ast_viewer/Cargo.toml | 3 --- crates/swc_ast_viewer/src/lib.rs | 17 +++++++++-------- 3 files changed, 9 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3471b2f..397f9a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -320,15 +320,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" -[[package]] -name = "js-sys" -version = "0.3.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" -dependencies = [ - "wasm-bindgen", -] - [[package]] name = "libc" version = "0.2.158" @@ -694,17 +685,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-wasm-bindgen" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" -dependencies = [ - "js-sys", - "serde", - "wasm-bindgen", -] - [[package]] name = "serde_derive" version = "1.0.210" @@ -824,9 +804,6 @@ name = "swc_ast_viewer" version = "0.0.0" dependencies = [ "anyhow", - "serde", - "serde-wasm-bindgen", - "serde_json", "swc_core", "swc_error_reporters", "wasm-bindgen", diff --git a/crates/swc_ast_viewer/Cargo.toml b/crates/swc_ast_viewer/Cargo.toml index e4dbf2b..7c0e152 100644 --- a/crates/swc_ast_viewer/Cargo.toml +++ b/crates/swc_ast_viewer/Cargo.toml @@ -14,9 +14,6 @@ version.workspace = true [dependencies] anyhow = "1.0.86" -serde = "1.0.210" -serde-wasm-bindgen = "0.6.5" -serde_json = "1.0.128" wasm-bindgen = "0.2.93" [dependencies.swc_core] diff --git a/crates/swc_ast_viewer/src/lib.rs b/crates/swc_ast_viewer/src/lib.rs index 7bceb44..22c3e86 100644 --- a/crates/swc_ast_viewer/src/lib.rs +++ b/crates/swc_ast_viewer/src/lib.rs @@ -1,5 +1,4 @@ use anyhow::Result; -use serde::Deserialize; use std::{str::FromStr, sync::Arc}; use swc_core::{ self, @@ -44,7 +43,10 @@ fn javascript(fm: &SourceFile, errors: &mut Vec, jsx: bool) -> PResult ) } -#[derive(Default, PartialEq, Deserialize)] +#[wasm_bindgen(typescript_custom_section)] +const TS_FileType: &'static str = r#"type FileType = "js" | "jsx" | "ts" | "tsx";"#; + +#[derive(Default, PartialEq)] enum FileType { JavaScript, JavaScriptReact, @@ -75,17 +77,16 @@ impl FromStr for FileType { #[wasm_bindgen] extern "C" { - #[wasm_bindgen(typescript_type = "Config")] + #[wasm_bindgen(typescript_type = "FileType")] pub type File; } #[wasm_bindgen] pub fn ast(input: &str, file_type: Option) -> Result { - let file_type: FileType = if let Some(file_type) = file_type { - serde_wasm_bindgen::from_value(file_type.clone()).map_err(|op| op.to_string())? - } else { - Default::default() - }; + let file_type: FileType = file_type + .and_then(|file_type| file_type.as_string()) + .and_then(|s| s.parse().ok()) + .unwrap_or_default(); let cm: Arc = Default::default(); let fm = cm.new_source_file(Arc::new(FileName::Anon), input.into());