From 4ff3db0a4d2b5a67a3e972328f541ceb663e954f Mon Sep 17 00:00:00 2001 From: Benjamin Woodruff Date: Tue, 4 Nov 2025 11:33:35 -0800 Subject: [PATCH] Turbopack: chore: Remove `extern crate` and `macro_use` syntax --- crates/napi/build.rs | 2 -- crates/napi/src/lib.rs | 3 --- crates/napi/src/lockfile.rs | 1 + crates/napi/src/mdx.rs | 1 + crates/napi/src/minify.rs | 1 + crates/napi/src/next_api/endpoint.rs | 3 ++- crates/napi/src/next_api/project.rs | 1 + crates/napi/src/next_api/turbopack_ctx.rs | 1 + crates/napi/src/next_api/utils.rs | 1 + crates/napi/src/parse.rs | 1 + crates/napi/src/react_compiler.rs | 1 + crates/napi/src/rspack.rs | 1 + crates/napi/src/transform.rs | 1 + crates/napi/src/turbo_trace_server.rs | 2 ++ crates/napi/src/turbopack.rs | 1 + crates/napi/src/util.rs | 1 + rspack/crates/binding/src/lib.rs | 5 +---- turbopack/crates/turbo-tasks-macros/src/lib.rs | 2 -- 18 files changed, 17 insertions(+), 12 deletions(-) diff --git a/crates/napi/build.rs b/crates/napi/build.rs index 473707f5f40aa1..475cb62e3be0d4 100644 --- a/crates/napi/build.rs +++ b/crates/napi/build.rs @@ -2,8 +2,6 @@ use std::{env, fs, path::Path, process::Command, str}; use serde_json::Value; -extern crate napi_build; - fn main() -> anyhow::Result<()> { println!("cargo:rerun-if-env-changed=CI"); let is_ci = env::var("CI").is_ok_and(|value| !value.is_empty()); diff --git a/crates/napi/src/lib.rs b/crates/napi/src/lib.rs index 24dacb72b44da2..d2f7bfc10344fa 100644 --- a/crates/napi/src/lib.rs +++ b/crates/napi/src/lib.rs @@ -32,9 +32,6 @@ DEALINGS IN THE SOFTWARE. #![feature(arbitrary_self_types_pointers)] #![feature(iter_intersperse)] -#[macro_use] -extern crate napi_derive; - use std::sync::Arc; use napi::bindgen_prelude::*; diff --git a/crates/napi/src/lockfile.rs b/crates/napi/src/lockfile.rs index 3566d661286433..9b44097a8a3df1 100644 --- a/crates/napi/src/lockfile.rs +++ b/crates/napi/src/lockfile.rs @@ -6,6 +6,7 @@ use std::{ use anyhow::Context; use napi::bindgen_prelude::External; +use napi_derive::napi; /// A wrapper around [`File`] that is passed to JS, and is set to `None` when [`lockfile_unlock`] is /// called. diff --git a/crates/napi/src/mdx.rs b/crates/napi/src/mdx.rs index 6d4bd57ffa708e..19d7f8ffa7fdc9 100644 --- a/crates/napi/src/mdx.rs +++ b/crates/napi/src/mdx.rs @@ -1,5 +1,6 @@ use mdxjs::{Options, compile}; use napi::bindgen_prelude::*; +use napi_derive::napi; pub struct MdxCompileTask { pub input: String, diff --git a/crates/napi/src/minify.rs b/crates/napi/src/minify.rs index c00eb507db3d74..0049d6a0d8590b 100644 --- a/crates/napi/src/minify.rs +++ b/crates/napi/src/minify.rs @@ -28,6 +28,7 @@ DEALINGS IN THE SOFTWARE. use anyhow::Context; use napi::bindgen_prelude::*; +use napi_derive::napi; use serde::Serialize; use swc_core::{ base::{config::JsMinifyOptions, try_with_handler}, diff --git a/crates/napi/src/next_api/endpoint.rs b/crates/napi/src/next_api/endpoint.rs index bb41523648a964..3415925b4f0059 100644 --- a/crates/napi/src/next_api/endpoint.rs +++ b/crates/napi/src/next_api/endpoint.rs @@ -3,6 +3,7 @@ use std::{ops::Deref, sync::Arc}; use anyhow::Result; use futures_util::TryFutureExt; use napi::{JsFunction, bindgen_prelude::External}; +use napi_derive::napi; use next_api::{ operation::OptionEndpoint, paths::ServerPath, @@ -15,7 +16,7 @@ use tracing::Instrument; use turbo_tasks::{Completion, Effects, OperationVc, ReadRef, Vc}; use turbopack_core::{diagnostics::PlainDiagnostic, issue::PlainIssue}; -use super::utils::{ +use crate::next_api::utils::{ DetachedVc, NapiDiagnostic, NapiIssue, RootTask, TurbopackResult, strongly_consistent_catch_collectables, subscribe, }; diff --git a/crates/napi/src/next_api/project.rs b/crates/napi/src/next_api/project.rs index 5cdae67ca08d1d..926231d03fc14b 100644 --- a/crates/napi/src/next_api/project.rs +++ b/crates/napi/src/next_api/project.rs @@ -8,6 +8,7 @@ use napi::{ bindgen_prelude::{External, within_runtime_if_available}, threadsafe_function::{ThreadsafeFunction, ThreadsafeFunctionCallMode}, }; +use napi_derive::napi; use next_api::{ entrypoints::Entrypoints, next_server_nft::next_server_nft_assets, diff --git a/crates/napi/src/next_api/turbopack_ctx.rs b/crates/napi/src/next_api/turbopack_ctx.rs index 9a0b7ed714ed1f..7712c853d919dc 100644 --- a/crates/napi/src/next_api/turbopack_ctx.rs +++ b/crates/napi/src/next_api/turbopack_ctx.rs @@ -12,6 +12,7 @@ use std::{ use anyhow::Result; use either::Either; use napi::{JsFunction, threadsafe_function::ThreadsafeFunction}; +use napi_derive::napi; use once_cell::sync::Lazy; use owo_colors::OwoColorize; use serde::Serialize; diff --git a/crates/napi/src/next_api/utils.rs b/crates/napi/src/next_api/utils.rs index 2eebcd45db85bd..49d9846e80b60a 100644 --- a/crates/napi/src/next_api/utils.rs +++ b/crates/napi/src/next_api/utils.rs @@ -7,6 +7,7 @@ use napi::{ bindgen_prelude::{Buffer, External, ToNapiValue}, threadsafe_function::{ThreadSafeCallContext, ThreadsafeFunction, ThreadsafeFunctionCallMode}, }; +use napi_derive::napi; use rustc_hash::FxHashMap; use serde::Serialize; use turbo_tasks::{ diff --git a/crates/napi/src/parse.rs b/crates/napi/src/parse.rs index 4ba37c725814f4..7d59fadb1090b2 100644 --- a/crates/napi/src/parse.rs +++ b/crates/napi/src/parse.rs @@ -2,6 +2,7 @@ use std::sync::Arc; use anyhow::Context as _; use napi::bindgen_prelude::*; +use napi_derive::napi; use swc_core::{ base::{config::ParseOptions, try_with_handler}, common::{ diff --git a/crates/napi/src/react_compiler.rs b/crates/napi/src/react_compiler.rs index febde475e26bfb..c788448305fdec 100644 --- a/crates/napi/src/react_compiler.rs +++ b/crates/napi/src/react_compiler.rs @@ -1,6 +1,7 @@ use std::{path::PathBuf, sync::Arc}; use napi::bindgen_prelude::*; +use napi_derive::napi; use next_custom_transforms::react_compiler; use swc_core::{ common::{GLOBALS, SourceMap}, diff --git a/crates/napi/src/rspack.rs b/crates/napi/src/rspack.rs index 2fd5e819952792..521b047df6adf6 100644 --- a/crates/napi/src/rspack.rs +++ b/crates/napi/src/rspack.rs @@ -1,6 +1,7 @@ use std::{cell::RefCell, fs, path::PathBuf, sync::Arc}; use napi::bindgen_prelude::*; +use napi_derive::napi; use swc_core::{ base::{ config::{IsModule, ParseOptions}, diff --git a/crates/napi/src/transform.rs b/crates/napi/src/transform.rs index e464cd208a993a..4c48d5f19312af 100644 --- a/crates/napi/src/transform.rs +++ b/crates/napi/src/transform.rs @@ -35,6 +35,7 @@ use std::{ use anyhow::{Context as _, anyhow, bail}; use napi::bindgen_prelude::*; +use napi_derive::napi; use next_custom_transforms::chain_transforms::{TransformOptions, custom_before_pass}; use once_cell::sync::Lazy; use rustc_hash::{FxHashMap, FxHashSet}; diff --git a/crates/napi/src/turbo_trace_server.rs b/crates/napi/src/turbo_trace_server.rs index 96ebae24a1c266..129e37d60f0349 100644 --- a/crates/napi/src/turbo_trace_server.rs +++ b/crates/napi/src/turbo_trace_server.rs @@ -1,5 +1,7 @@ use std::path::PathBuf; +use napi_derive::napi; + #[napi] pub fn start_turbopack_trace_server(path: String, port: Option) { let path_buf = PathBuf::from(path); diff --git a/crates/napi/src/turbopack.rs b/crates/napi/src/turbopack.rs index 0574beb26f0925..7b88a1c90a6111 100644 --- a/crates/napi/src/turbopack.rs +++ b/crates/napi/src/turbopack.rs @@ -2,6 +2,7 @@ use std::path::PathBuf; use anyhow::Context; use napi::bindgen_prelude::*; +use napi_derive::napi; use next_build::{ BuildOptions as NextBuildOptions, build_options::{BuildContext, DefineEnv}, diff --git a/crates/napi/src/util.rs b/crates/napi/src/util.rs index e1a9698cd7ada7..dd45782986ff1a 100644 --- a/crates/napi/src/util.rs +++ b/crates/napi/src/util.rs @@ -30,6 +30,7 @@ use std::{cell::RefCell, env, path::PathBuf}; use anyhow::anyhow; use napi::bindgen_prelude::{External, Status}; +use napi_derive::napi; use tracing_chrome::{ChromeLayerBuilder, FlushGuard}; use tracing_subscriber::{Layer, filter, layer::SubscriberExt, util::SubscriberInitExt}; diff --git a/rspack/crates/binding/src/lib.rs b/rspack/crates/binding/src/lib.rs index aab8bc436a75dc..3f84858a38a58a 100644 --- a/rspack/crates/binding/src/lib.rs +++ b/rspack/crates/binding/src/lib.rs @@ -5,6 +5,7 @@ mod handle_externals; mod next_externals_plugin; use napi::bindgen_prelude::*; +use napi_derive::napi; use rspack_binding_builder_macros::register_plugin; use rspack_core::BoxPlugin; use rspack_regex::RspackRegex; @@ -15,10 +16,6 @@ use crate::{ next_externals_plugin::{NextExternalsPlugin, NextExternalsPluginOptions}, }; -#[macro_use] -extern crate napi_derive; -extern crate rspack_binding_builder; - #[derive(Debug)] #[napi(object, object_to_js = false)] pub struct NapiExperimentalConfig { diff --git a/turbopack/crates/turbo-tasks-macros/src/lib.rs b/turbopack/crates/turbo-tasks-macros/src/lib.rs index 754cc67638789e..b535341f4b315a 100644 --- a/turbopack/crates/turbo-tasks-macros/src/lib.rs +++ b/turbopack/crates/turbo-tasks-macros/src/lib.rs @@ -14,8 +14,6 @@ mod value_impl_macro; mod value_macro; mod value_trait_macro; -extern crate proc_macro; - use proc_macro::TokenStream; use proc_macro_error::proc_macro_error;