diff --git a/Cargo.lock b/Cargo.lock index d227cd658..47ec4a316 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -883,7 +883,7 @@ dependencies = [ [[package]] name = "modularize_imports" -version = "0.27.6" +version = "0.27.7" dependencies = [ "convert_case", "handlebars", @@ -1698,7 +1698,7 @@ dependencies = [ [[package]] name = "styled_components" -version = "0.54.6" +version = "0.54.7" dependencies = [ "Inflector", "once_cell", @@ -1712,7 +1712,7 @@ dependencies = [ [[package]] name = "styled_jsx" -version = "0.31.6" +version = "0.31.7" dependencies = [ "easy-error", "swc_core", @@ -2267,7 +2267,7 @@ dependencies = [ [[package]] name = "swc_emotion" -version = "0.30.6" +version = "0.30.7" dependencies = [ "base64", "byteorder", @@ -2461,7 +2461,7 @@ dependencies = [ [[package]] name = "swc_relay" -version = "0.2.6" +version = "0.2.7" dependencies = [ "once_cell", "regex", diff --git a/packages/emotion/package.json b/packages/emotion/package.json index 226f8a1b8..7bc4bab75 100644 --- a/packages/emotion/package.json +++ b/packages/emotion/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-emotion", - "version": "2.5.60", + "version": "2.5.61", "description": "SWC plugin for emotion css-in-js library", "main": "swc_plugin_emotion.wasm", "scripts": { diff --git a/packages/emotion/transform/Cargo.toml b/packages/emotion/transform/Cargo.toml index 84955c277..bf7dff11b 100644 --- a/packages/emotion/transform/Cargo.toml +++ b/packages/emotion/transform/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "Apache-2.0" name = "swc_emotion" repository = "https://github.com/swc-project/plugins.git" -version = "0.30.6" +version = "0.30.7" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/packages/jest/package.json b/packages/jest/package.json index 55b9aca4c..d9f5d05b9 100644 --- a/packages/jest/package.json +++ b/packages/jest/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-jest", - "version": "1.5.60", + "version": "1.5.61", "description": "SWC plugin for jest", "main": "swc_plugin_jest.wasm", "scripts": { diff --git a/packages/loadable-components/package.json b/packages/loadable-components/package.json index f82ced570..bbc9a2497 100644 --- a/packages/loadable-components/package.json +++ b/packages/loadable-components/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-loadable-components", - "version": "0.3.60", + "version": "0.3.61", "description": "SWC plugin for `@loadable/components`", "main": "swc_plugin_loadable_components.wasm", "scripts": { diff --git a/packages/noop/package.json b/packages/noop/package.json index d4c69e356..4270b16e2 100644 --- a/packages/noop/package.json +++ b/packages/noop/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-noop", - "version": "1.5.58", + "version": "1.5.59", "description": "Noop SWC plugin, for debugging", "main": "swc_plugin_noop.wasm", "scripts": { diff --git a/packages/relay/package.json b/packages/relay/package.json index 0b3615d30..da390b0f3 100644 --- a/packages/relay/package.json +++ b/packages/relay/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-relay", - "version": "1.5.60", + "version": "1.5.61", "description": "SWC plugin for relay", "main": "swc_plugin_relay.wasm", "types": "./types.d.ts", diff --git a/packages/relay/src/lib.rs b/packages/relay/src/lib.rs index b1bb04070..c7c296b27 100644 --- a/packages/relay/src/lib.rs +++ b/packages/relay/src/lib.rs @@ -50,7 +50,13 @@ fn relay_plugin_transform(program: Program, metadata: TransformPluginProgramMeta eager_es_modules, }; - let mut relay = relay(&config, filename, root_dir, None); + let mut relay = relay( + &config, + filename, + root_dir, + None, + Some(metadata.unresolved_mark), + ); program.fold_with(&mut relay) } diff --git a/packages/relay/transform/Cargo.toml b/packages/relay/transform/Cargo.toml index b71f8bb9b..8d89eddf0 100644 --- a/packages/relay/transform/Cargo.toml +++ b/packages/relay/transform/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "Apache-2.0" name = "swc_relay" repository = "https://github.com/swc-project/plugins.git" -version = "0.2.6" +version = "0.2.7" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/packages/relay/transform/src/lib.rs b/packages/relay/transform/src/lib.rs index 84e81dc44..9a14305fa 100644 --- a/packages/relay/transform/src/lib.rs +++ b/packages/relay/transform/src/lib.rs @@ -8,7 +8,7 @@ use once_cell::sync::Lazy; use regex::Regex; use serde::Deserialize; use swc_core::{ - common::FileName, + common::{FileName, Mark, DUMMY_SP}, ecma::{ ast::*, atoms::JsWord, @@ -74,6 +74,7 @@ struct Relay<'a> { file_name: FileName, config: &'a Config, imports: Vec<RelayImport>, + unresolved_mark: Option<Mark>, } #[derive(Deserialize, Debug, Default, Clone)] @@ -97,10 +98,14 @@ fn pull_first_operation_name_from_tpl(tpl: &TaggedTpl) -> Option<String> { }) } -fn build_require_expr_from_path(path: &str) -> Expr { +fn build_require_expr_from_path(path: &str, mark: Option<Mark>) -> Expr { Expr::Call(CallExpr { span: Default::default(), - callee: quote_ident!("require").as_callee(), + callee: quote_ident!( + mark.map(|m| DUMMY_SP.apply_mark(m)).unwrap_or(DUMMY_SP), + "require" + ) + .as_callee(), args: vec![Lit::Str(Str { span: Default::default(), value: JsWord::from(path), @@ -226,13 +231,19 @@ impl<'a> Relay<'a> { item: ident_name.clone(), }); let operation_ident = Ident { - span: Default::default(), + span: self + .unresolved_mark + .map(|m| DUMMY_SP.apply_mark(m)) + .unwrap_or(Default::default()), sym: ident_name, optional: false, }; Some(Expr::Ident(operation_ident)) } else { - Some(build_require_expr_from_path(&final_path)) + Some(build_require_expr_from_path( + &final_path, + self.unresolved_mark, + )) } } Err(_err) => { @@ -262,6 +273,7 @@ pub fn relay( file_name: FileName, root_dir: PathBuf, pages_dir: Option<PathBuf>, + unresolved_mark: Option<Mark>, ) -> impl Fold + '_ { Relay { root_dir, @@ -269,5 +281,6 @@ pub fn relay( config, pages_dir, imports: vec![], + unresolved_mark, } } diff --git a/packages/relay/transform/tests/fixture.rs b/packages/relay/transform/tests/fixture.rs index 24a2f1d50..678a674f7 100644 --- a/packages/relay/transform/tests/fixture.rs +++ b/packages/relay/transform/tests/fixture.rs @@ -20,6 +20,7 @@ fn fixture(input: PathBuf) { FileName::Real("file.js".parse().unwrap()), Default::default(), None, + None, ) }, &input, @@ -44,6 +45,7 @@ fn fixture_es_modules(input: PathBuf) { FileName::Real("file.js".parse().unwrap()), Default::default(), None, + None, ) }, &input, diff --git a/packages/styled-components/package.json b/packages/styled-components/package.json index add58c30e..cf7a5509a 100644 --- a/packages/styled-components/package.json +++ b/packages/styled-components/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-styled-components", - "version": "1.5.60", + "version": "1.5.61", "description": "SWC plugin for styled-components", "main": "swc_plugin_styled_components.wasm", "scripts": { diff --git a/packages/styled-components/transform/Cargo.toml b/packages/styled-components/transform/Cargo.toml index 278615a6a..80be0c74c 100644 --- a/packages/styled-components/transform/Cargo.toml +++ b/packages/styled-components/transform/Cargo.toml @@ -6,7 +6,7 @@ include = ["Cargo.toml", "src/**/*.rs"] license = "Apache-2.0" name = "styled_components" repository = "https://github.com/swc-project/plugins.git" -version = "0.54.6" +version = "0.54.7" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/packages/styled-jsx/package.json b/packages/styled-jsx/package.json index bf25cf054..28a3f7403 100644 --- a/packages/styled-jsx/package.json +++ b/packages/styled-jsx/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-styled-jsx", - "version": "1.5.60", + "version": "1.5.61", "description": "SWC plugin for styled-jsx", "main": "swc_plugin_styled_jsx.wasm", "scripts": { diff --git a/packages/styled-jsx/transform/Cargo.toml b/packages/styled-jsx/transform/Cargo.toml index 9dd8e1129..0c346afb8 100644 --- a/packages/styled-jsx/transform/Cargo.toml +++ b/packages/styled-jsx/transform/Cargo.toml @@ -4,7 +4,7 @@ description = "AST transforms visitor for styled-jsx" edition = "2021" license = "Apache-2.0" name = "styled_jsx" -version = "0.31.6" +version = "0.31.7" [features] custom_transform = ["swc_core/common_concurrent"] diff --git a/packages/transform-imports/package.json b/packages/transform-imports/package.json index 4ae41101a..81d0b6358 100644 --- a/packages/transform-imports/package.json +++ b/packages/transform-imports/package.json @@ -1,6 +1,6 @@ { "name": "@swc/plugin-transform-imports", - "version": "1.5.60", + "version": "1.5.61", "description": "SWC plugin for https://www.npmjs.com/package/babel-plugin-transform-imports", "main": "swc_plugin_transform_imports.wasm", "scripts": { diff --git a/packages/transform-imports/transform/Cargo.toml b/packages/transform-imports/transform/Cargo.toml index 395f5d198..b8707c0da 100644 --- a/packages/transform-imports/transform/Cargo.toml +++ b/packages/transform-imports/transform/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "Apache-2.0" name = "modularize_imports" repository = "https://github.com/swc-project/plugins.git" -version = "0.27.6" +version = "0.27.7" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html