From a07138999408072c98451ff6e01ab4edbba504c2 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Mon, 12 Aug 2024 11:02:18 +0200 Subject: [PATCH] move backend impl into type alias --- crates/napi/src/app_structure.rs | 7 +++---- crates/napi/src/next_api/project.rs | 13 ++++++------- crates/napi/src/next_api/utils.rs | 12 +++++++----- crates/napi/src/turbotrace.rs | 9 +++++---- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/crates/napi/src/app_structure.rs b/crates/napi/src/app_structure.rs index 1eaa376350399..7cab786fc6db4 100644 --- a/crates/napi/src/app_structure.rs +++ b/crates/napi/src/app_structure.rs @@ -17,10 +17,9 @@ use turbo_tasks::{ ValueToString, Vc, }; use turbo_tasks_fs::{DiskFileSystem, FileSystem, FileSystemPath}; -use turbo_tasks_memory::MemoryBackend; use turbopack_core::PROJECT_FILESYSTEM_NAME; -use crate::register; +use crate::{next_api::utils::NextBackend, register}; #[turbo_tasks::function] async fn project_fs(project_dir: RcStr, watching: bool) -> Result>> { @@ -353,7 +352,7 @@ async fn get_value( #[napi] pub fn stream_entrypoints( - turbo_tasks: External>>, + turbo_tasks: External>>, root_dir: String, project_dir: String, page_extensions: Vec, @@ -399,7 +398,7 @@ pub fn stream_entrypoints( #[napi] pub async fn get_entrypoints( - turbo_tasks: External>>, + turbo_tasks: External>>, root_dir: String, project_dir: String, page_extensions: Vec, diff --git a/crates/napi/src/next_api/project.rs b/crates/napi/src/next_api/project.rs index 07c732ade3139..6cd5ea8316d02 100644 --- a/crates/napi/src/next_api/project.rs +++ b/crates/napi/src/next_api/project.rs @@ -24,7 +24,6 @@ use tracing::Instrument; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Registry}; use turbo_tasks::{Completion, RcStr, ReadRef, TransientInstance, TurboTasks, UpdateInfo, Vc}; use turbo_tasks_fs::{DiskFileSystem, FileContent, FileSystem, FileSystemPath}; -use turbo_tasks_memory::MemoryBackend; use turbopack_core::{ diagnostics::PlainDiagnostic, error::PrettyPrintError, @@ -44,7 +43,7 @@ use url::Url; use super::{ endpoint::ExternalEndpoint, utils::{ - get_diagnostics, get_issues, subscribe, NapiDiagnostic, NapiIssue, RootTask, + get_diagnostics, get_issues, subscribe, NapiDiagnostic, NapiIssue, NextBackend, RootTask, TurbopackResult, VcArc, }, }; @@ -244,7 +243,7 @@ impl From for DefineEnv { } pub struct ProjectInstance { - turbo_tasks: Arc>, + turbo_tasks: Arc>, container: Vc, exit_receiver: tokio::sync::Mutex>, } @@ -309,7 +308,7 @@ pub async fn project_new( subscriber.init(); } - let turbo_tasks = TurboTasks::new(MemoryBackend::new( + let turbo_tasks = TurboTasks::new(NextBackend::new( turbo_engine_options .memory_limit .map(|m| m as usize) @@ -463,7 +462,7 @@ impl NapiRoute { fn from_route( pathname: String, value: Route, - turbo_tasks: &Arc>, + turbo_tasks: &Arc>, ) -> Self { let convert_endpoint = |endpoint: Vc>| { Some(External::new(ExternalEndpoint(VcArc::new( @@ -530,7 +529,7 @@ struct NapiMiddleware { impl NapiMiddleware { fn from_middleware( value: &Middleware, - turbo_tasks: &Arc>, + turbo_tasks: &Arc>, ) -> Result { Ok(NapiMiddleware { endpoint: External::new(ExternalEndpoint(VcArc::new( @@ -550,7 +549,7 @@ struct NapiInstrumentation { impl NapiInstrumentation { fn from_instrumentation( value: &Instrumentation, - turbo_tasks: &Arc>, + turbo_tasks: &Arc>, ) -> Result { Ok(NapiInstrumentation { node_js: External::new(ExternalEndpoint(VcArc::new( diff --git a/crates/napi/src/next_api/utils.rs b/crates/napi/src/next_api/utils.rs index 286a8acf01cf3..bd6bd97b0f2ed 100644 --- a/crates/napi/src/next_api/utils.rs +++ b/crates/napi/src/next_api/utils.rs @@ -17,22 +17,24 @@ use turbopack_core::{ source_pos::SourcePos, }; +pub type NextBackend = MemoryBackend; + /// A helper type to hold both a Vc operation and the TurboTasks root process. /// Without this, we'd need to pass both individually all over the place #[derive(Clone)] pub struct VcArc { - turbo_tasks: Arc>, + turbo_tasks: Arc>, /// The Vc. Must be resolved, otherwise you are referencing an inactive /// operation. vc: T, } impl VcArc { - pub fn new(turbo_tasks: Arc>, vc: T) -> Self { + pub fn new(turbo_tasks: Arc>, vc: T) -> Self { Self { turbo_tasks, vc } } - pub fn turbo_tasks(&self) -> &Arc> { + pub fn turbo_tasks(&self) -> &Arc> { &self.turbo_tasks } } @@ -55,7 +57,7 @@ pub fn serde_enum_to_string(value: &T) -> Result { /// The root of our turbopack computation. pub struct RootTask { #[allow(dead_code)] - turbo_tasks: Arc>, + turbo_tasks: Arc>, #[allow(dead_code)] task_id: Option, } @@ -299,7 +301,7 @@ impl ToNapiValue for TurbopackResult { } pub fn subscribe> + Send, V: ToNapiValue>( - turbo_tasks: Arc>, + turbo_tasks: Arc>, func: JsFunction, handler: impl 'static + Sync + Send + Clone + Fn() -> F, mapper: impl 'static + Sync + Send + FnMut(ThreadSafeCallContext) -> napi::Result>, diff --git a/crates/napi/src/turbotrace.rs b/crates/napi/src/turbotrace.rs index faf0c63db3764..f3281ad3030d4 100644 --- a/crates/napi/src/turbotrace.rs +++ b/crates/napi/src/turbotrace.rs @@ -3,15 +3,16 @@ use std::sync::Arc; use napi::bindgen_prelude::*; use node_file_trace::{start, Args}; use turbo_tasks::TurboTasks; -use turbo_tasks_memory::MemoryBackend; use turbopack::{ module_options::{EcmascriptOptionsContext, ModuleOptionsContext}, resolve_options_context::ResolveOptionsContext, }; +use crate::next_api::utils::NextBackend; + #[napi] -pub fn create_turbo_tasks(memory_limit: Option) -> External>> { - let turbo_tasks = TurboTasks::new(MemoryBackend::new( +pub fn create_turbo_tasks(memory_limit: Option) -> External>> { + let turbo_tasks = TurboTasks::new(NextBackend::new( memory_limit.map(|m| m as usize).unwrap_or(usize::MAX), )); External::new_with_size_hint( @@ -23,7 +24,7 @@ pub fn create_turbo_tasks(memory_limit: Option) -> External>>>, + turbo_tasks: Option>>>, ) -> napi::Result> { let args: Args = serde_json::from_slice(options.as_ref())?; let turbo_tasks = turbo_tasks.map(|t| t.clone());