From f3d5c2fe9ef3b0005cbdfcb0358f560862a5992a Mon Sep 17 00:00:00 2001 From: OJ Kwon <1210596+kwonoj@users.noreply.github.com> Date: Wed, 26 Apr 2023 06:55:53 -0700 Subject: [PATCH] refactor(next-swc): turbopack_ecmascript_plugins (#48671) ### What? This PR is necessary changes to apply https://github.com/vercel/turbo/pull/4662. Need turbopack bump to make CI pass. --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- Cargo.lock | 80 +++++++++++-------- Cargo.toml | 6 +- packages/next-swc/crates/next-core/Cargo.toml | 1 + packages/next-swc/crates/next-core/src/lib.rs | 2 + .../crates/next-core/src/next_config.rs | 3 +- .../next-core/src/next_shared/transforms.rs | 12 +-- .../crates/next-core/src/transform_options.rs | 8 +- 7 files changed, 67 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a4daa464c6..d594528a06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -400,7 +400,7 @@ dependencies = [ [[package]] name = "auto-hash-map" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "serde", ] @@ -3411,7 +3411,7 @@ dependencies = [ [[package]] name = "node-file-trace" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "serde", @@ -6972,7 +6972,7 @@ dependencies = [ [[package]] name = "turbo-binding" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "auto-hash-map", "mdxjs", @@ -7001,6 +7001,7 @@ dependencies = [ "turbopack-dev", "turbopack-dev-server", "turbopack-ecmascript", + "turbopack-ecmascript-plugins", "turbopack-env", "turbopack-image", "turbopack-node", @@ -7011,7 +7012,7 @@ dependencies = [ [[package]] name = "turbo-malloc" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "mimalloc", ] @@ -7019,7 +7020,7 @@ dependencies = [ [[package]] name = "turbo-tasks" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "auto-hash-map", @@ -7049,7 +7050,7 @@ dependencies = [ [[package]] name = "turbo-tasks-build" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "cargo-lock", @@ -7061,7 +7062,7 @@ dependencies = [ [[package]] name = "turbo-tasks-bytes" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "bytes", @@ -7076,7 +7077,7 @@ dependencies = [ [[package]] name = "turbo-tasks-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "dotenvy", @@ -7090,7 +7091,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fetch" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "indexmap", @@ -7107,7 +7108,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fs" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "auto-hash-map", @@ -7136,7 +7137,7 @@ dependencies = [ [[package]] name = "turbo-tasks-hash" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "base16", "hex", @@ -7148,7 +7149,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -7162,7 +7163,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros-shared" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "proc-macro2", "quote", @@ -7172,7 +7173,7 @@ dependencies = [ [[package]] name = "turbo-tasks-memory" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "auto-hash-map", @@ -7194,7 +7195,7 @@ dependencies = [ [[package]] name = "turbo-tasks-testing" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "auto-hash-map", @@ -7206,7 +7207,7 @@ dependencies = [ [[package]] name = "turbopack" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "async-recursion", @@ -7223,6 +7224,7 @@ dependencies = [ "turbopack-core", "turbopack-css", "turbopack-ecmascript", + "turbopack-ecmascript-plugins", "turbopack-env", "turbopack-image", "turbopack-json", @@ -7234,7 +7236,7 @@ dependencies = [ [[package]] name = "turbopack-bench" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "chromiumoxide", @@ -7264,7 +7266,7 @@ dependencies = [ [[package]] name = "turbopack-cli-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "clap 4.1.11", @@ -7281,7 +7283,7 @@ dependencies = [ [[package]] name = "turbopack-core" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "async-trait", @@ -7308,7 +7310,7 @@ dependencies = [ [[package]] name = "turbopack-create-test-app" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "clap 4.1.11", @@ -7321,7 +7323,7 @@ dependencies = [ [[package]] name = "turbopack-css" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "async-trait", @@ -7343,7 +7345,7 @@ dependencies = [ [[package]] name = "turbopack-dev" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "indexmap", @@ -7364,7 +7366,7 @@ dependencies = [ [[package]] name = "turbopack-dev-server" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "async-compression", @@ -7398,7 +7400,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "async-trait", @@ -7431,10 +7433,24 @@ dependencies = [ "url", ] +[[package]] +name = "turbopack-ecmascript-plugins" +version = "0.1.0" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" +dependencies = [ + "anyhow", + "serde", + "swc_core", + "swc_emotion", + "turbo-tasks", + "turbo-tasks-build", + "turbopack-ecmascript", +] + [[package]] name = "turbopack-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "indexmap", @@ -7450,7 +7466,7 @@ dependencies = [ [[package]] name = "turbopack-image" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "base64 0.21.0", @@ -7468,7 +7484,7 @@ dependencies = [ [[package]] name = "turbopack-json" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "serde", @@ -7483,7 +7499,7 @@ dependencies = [ [[package]] name = "turbopack-mdx" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "mdxjs", @@ -7498,7 +7514,7 @@ dependencies = [ [[package]] name = "turbopack-node" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "async-stream", @@ -7532,7 +7548,7 @@ dependencies = [ [[package]] name = "turbopack-static" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "serde", @@ -7548,7 +7564,7 @@ dependencies = [ [[package]] name = "turbopack-swc-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "swc_core", "turbo-tasks", @@ -7559,7 +7575,7 @@ dependencies = [ [[package]] name = "turbopack-test-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.3#3b3243a4352ed9bbe2df597724d43d5b7a66d369" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230425.4#bef88f9c2c8519d111099292b0ebe20edd412ebf" dependencies = [ "anyhow", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 3f08d8c685..425149397b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,11 +42,11 @@ swc_relay = { version = "0.2.5" } testing = { version = "0.33.4" } # Turbo crates -turbo-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230425.3" } +turbo-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230425.4" } # [TODO]: need to refactor embed_directory! macro usages, as well as resolving turbo_tasks::function, macros.. -turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230425.3" } +turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230425.4" } # [TODO]: need to refactor embed_directory! macro usage in next-core -turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230425.3" } +turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230425.4" } # General Deps diff --git a/packages/next-swc/crates/next-core/Cargo.toml b/packages/next-swc/crates/next-core/Cargo.toml index 3e2e6ca01d..49f05b5ac7 100644 --- a/packages/next-swc/crates/next-core/Cargo.toml +++ b/packages/next-swc/crates/next-core/Cargo.toml @@ -35,6 +35,7 @@ turbo-binding = { workspace = true, features = [ "__turbopack_dev", "__turbopack_dev_server", "__turbopack_ecmascript", + "__turbopack_ecmascript_plugin", "__turbopack_env", "__turbopack_static", "__turbopack_image", diff --git a/packages/next-swc/crates/next-core/src/lib.rs b/packages/next-swc/crates/next-core/src/lib.rs index b6c3890e0b..fa249e39fd 100644 --- a/packages/next-swc/crates/next-core/src/lib.rs +++ b/packages/next-swc/crates/next-core/src/lib.rs @@ -47,5 +47,7 @@ pub fn register() { turbopack::node::register(); turbopack::turbopack::register(); turbopack::image::register(); + turbopack::ecmascript::register(); + turbopack::ecmascript_plugin::register(); include!(concat!(env!("OUT_DIR"), "/register.rs")); } diff --git a/packages/next-swc/crates/next-core/src/next_config.rs b/packages/next-swc/crates/next-core/src/next_config.rs index 3b4b65d370..46428b25a6 100644 --- a/packages/next-swc/crates/next-core/src/next_config.rs +++ b/packages/next-swc/crates/next-core/src/next_config.rs @@ -23,6 +23,7 @@ use turbo_binding::{ ecmascript::{ EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, }, + ecmascript_plugin::transform::emotion::EmotionTransformConfig, node::{ evaluate::evaluate, execution_context::{ExecutionContext, ExecutionContextVc}, @@ -30,7 +31,7 @@ use turbo_binding::{ }, turbopack::{ evaluate_context::node_evaluate_asset_context, - module_options::{EmotionTransformConfig, StyledComponentsTransformConfig}, + module_options::StyledComponentsTransformConfig, }, }, }; diff --git a/packages/next-swc/crates/next-core/src/next_shared/transforms.rs b/packages/next-swc/crates/next-core/src/next_shared/transforms.rs index 021f6dd0db..00233c6f70 100644 --- a/packages/next-swc/crates/next-core/src/next_shared/transforms.rs +++ b/packages/next-swc/crates/next-core/src/next_shared/transforms.rs @@ -19,8 +19,8 @@ use turbo_binding::{ turbopack::{ core::reference_type::{ReferenceType, UrlReferenceSubType}, ecmascript::{ - CustomTransformVc, CustomTransformer, EcmascriptInputTransform, - EcmascriptInputTransformsVc, TransformContext, + CustomTransformer, EcmascriptInputTransform, EcmascriptInputTransformsVc, + TransformContext, TransformPluginVc, }, turbopack::module_options::{ ModuleRule, ModuleRuleCondition, ModuleRuleEffect, ModuleType, @@ -38,7 +38,7 @@ pub async fn get_next_pages_transforms_rule( ) -> Result { // Apply the Next SSG transform to all pages. let strip_transform = - EcmascriptInputTransform::Custom(CustomTransformVc::cell(box NextJsStripPageExports { + EcmascriptInputTransform::Plugin(TransformPluginVc::cell(box NextJsStripPageExports { export_filter, })); Ok(ModuleRule::new( @@ -110,7 +110,7 @@ pub async fn get_next_dynamic_transform_rule( pages_dir: Option, ) -> Result { let dynamic_transform = - EcmascriptInputTransform::Custom(CustomTransformVc::cell(box NextJsDynamic { + EcmascriptInputTransform::Plugin(TransformPluginVc::cell(box NextJsDynamic { is_development, is_server, is_server_components, @@ -159,7 +159,7 @@ pub fn get_next_font_transform_rule() -> ModuleRule { ]; let transformer = - EcmascriptInputTransform::Custom(CustomTransformVc::cell(box NextJsFont { font_loaders })); + EcmascriptInputTransform::Plugin(TransformPluginVc::cell(box NextJsFont { font_loaders })); ModuleRule::new( // TODO: Only match in pages (not pages/api), app/, etc. module_rule_match_js_no_url(), @@ -229,7 +229,7 @@ pub struct ModularizeImportPackageConfig { pub fn get_next_modularize_imports_rule( modularize_imports_config: &IndexMap, ) -> ModuleRule { - let transformer = EcmascriptInputTransform::Custom(CustomTransformVc::cell(Box::new( + let transformer = EcmascriptInputTransform::Plugin(TransformPluginVc::cell(Box::new( ModularizeImportsTransformer::new(modularize_imports_config), ))); ModuleRule::new( diff --git a/packages/next-swc/crates/next-core/src/transform_options.rs b/packages/next-swc/crates/next-core/src/transform_options.rs index 01f689f38f..88bc9b6600 100644 --- a/packages/next-swc/crates/next-core/src/transform_options.rs +++ b/packages/next-swc/crates/next-core/src/transform_options.rs @@ -6,10 +6,12 @@ use turbo_binding::turbopack::{ source_asset::SourceAssetVc, }, ecmascript::typescript::resolve::{read_from_tsconfigs, read_tsconfigs, tsconfig}, + ecmascript_plugin::transform::emotion::{ + EmotionTransformConfig, EmotionTransformConfigVc, OptionEmotionTransformConfigVc, + }, turbopack::module_options::{ - DecoratorsKind, DecoratorsOptions, DecoratorsOptionsVc, EmotionTransformConfig, - EmotionTransformConfigVc, JsxTransformOptions, JsxTransformOptionsVc, - OptionEmotionTransformConfigVc, OptionStyledComponentsTransformConfigVc, + DecoratorsKind, DecoratorsOptions, DecoratorsOptionsVc, JsxTransformOptions, + JsxTransformOptionsVc, OptionStyledComponentsTransformConfigVc, StyledComponentsTransformConfig, TypescriptTransformOptions, TypescriptTransformOptionsVc, }, };