Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Vc<NextMode> #62099

Merged
merged 4 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
48 changes: 13 additions & 35 deletions packages/next-swc/crates/next-api/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ use next_core::{
MetadataItem,
},
get_edge_resolve_options_context,
mode::NextMode,
next_app::{
app_client_references_chunks::get_app_server_reference_modules,
get_app_client_references_chunks, get_app_client_shared_chunks, get_app_page_entry,
Expand Down Expand Up @@ -75,7 +74,6 @@ use crate::{
pub struct AppProject {
project: Vc<Project>,
app_dir: Vc<FileSystemPath>,
mode: NextMode,
}

#[turbo_tasks::value(transparent)]
Expand Down Expand Up @@ -108,13 +106,8 @@ const ECMASCRIPT_CLIENT_TRANSITION_NAME: &str = "next-ecmascript-client-referenc
#[turbo_tasks::value_impl]
impl AppProject {
#[turbo_tasks::function]
pub fn new(project: Vc<Project>, app_dir: Vc<FileSystemPath>, mode: NextMode) -> Vc<Self> {
AppProject {
project,
app_dir,
mode,
}
.cell()
pub fn new(project: Vc<Project>, app_dir: Vc<FileSystemPath>) -> Vc<Self> {
AppProject { project, app_dir }.cell()
}

#[turbo_tasks::function]
Expand All @@ -127,36 +120,29 @@ impl AppProject {
self.app_dir
}

#[turbo_tasks::function]
fn mode(&self) -> Vc<NextMode> {
self.mode.cell()
}

#[turbo_tasks::function]
fn app_entrypoints(&self) -> Vc<AppEntrypoints> {
get_entrypoints(self.app_dir, self.project.next_config().page_extensions())
}

#[turbo_tasks::function]
async fn client_module_options_context(self: Vc<Self>) -> Result<Vc<ModuleOptionsContext>> {
let this = self.await?;
Ok(get_client_module_options_context(
self.project().project_path(),
self.project().execution_context(),
self.project().client_compile_time_info().environment(),
Value::new(self.client_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
))
}

#[turbo_tasks::function]
async fn client_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_client_resolve_options_context(
self.project().project_path(),
Value::new(self.client_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
Expand All @@ -179,35 +165,32 @@ impl AppProject {

#[turbo_tasks::function]
async fn rsc_module_options_context(self: Vc<Self>) -> Result<Vc<ModuleOptionsContext>> {
let this = self.await?;
Ok(get_server_module_options_context(
self.project().project_path(),
self.project().execution_context(),
Value::new(self.rsc_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
))
}

#[turbo_tasks::function]
async fn rsc_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_server_resolve_options_context(
self.project().project_path(),
Value::new(self.rsc_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
}

#[turbo_tasks::function]
async fn edge_rsc_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_edge_resolve_options_context(
self.project().project_path(),
Value::new(self.rsc_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
Expand Down Expand Up @@ -283,35 +266,32 @@ impl AppProject {

#[turbo_tasks::function]
async fn ssr_module_options_context(self: Vc<Self>) -> Result<Vc<ModuleOptionsContext>> {
let this = self.await?;
Ok(get_server_module_options_context(
self.project().project_path(),
self.project().execution_context(),
Value::new(self.ssr_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
))
}

#[turbo_tasks::function]
async fn ssr_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_server_resolve_options_context(
self.project().project_path(),
Value::new(self.ssr_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
}

#[turbo_tasks::function]
async fn edge_ssr_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_edge_resolve_options_context(
self.project().project_path(),
Value::new(self.ssr_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
Expand Down Expand Up @@ -339,10 +319,9 @@ impl AppProject {

#[turbo_tasks::function]
async fn runtime_entries(self: Vc<Self>) -> Result<Vc<RuntimeEntries>> {
let this = self.await?;
Ok(get_server_runtime_entries(
Value::new(self.rsc_ty()),
this.mode,
self.project().next_mode(),
))
}

Expand All @@ -368,11 +347,10 @@ impl AppProject {

#[turbo_tasks::function]
async fn client_runtime_entries(self: Vc<Self>) -> Result<Vc<EvaluatableAssets>> {
let this = self.await?;
Ok(get_client_runtime_entries(
self.project().project_path(),
Value::new(self.client_ty()),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
)
Expand Down Expand Up @@ -513,7 +491,7 @@ impl AppEndpoint {
self.app_project.edge_rsc_module_context(),
self.app_project.project().project_path(),
self.page.clone(),
*self.app_project.mode().await?,
*self.app_project.project().next_mode().await?,
metadata,
))
}
Expand Down
5 changes: 2 additions & 3 deletions packages/next-swc/crates/next-api/src/instrumentation.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
use anyhow::{bail, Result};
use next_core::{
all_assets_from_entries,
mode::NextMode,
next_edge::entry::wrap_edge_entry,
next_manifests::{InstrumentationDefinition, MiddlewaresManifestV2},
next_server::{get_server_chunking_context, get_server_runtime_entries, ServerContextType},
Expand Down Expand Up @@ -78,7 +77,7 @@ impl InstrumentationEndpoint {

let mut evaluatable_assets = get_server_runtime_entries(
Value::new(ServerContextType::Middleware),
NextMode::Development,
self.project.next_mode(),
)
.resolve_entries(self.context)
.await?
Expand Down Expand Up @@ -136,7 +135,7 @@ impl InstrumentationEndpoint {
module,
get_server_runtime_entries(
Value::new(ServerContextType::Instrumentation),
NextMode::Development,
self.project.next_mode(),
)
.resolve_entries(self.context),
Value::new(AvailabilityInfo::Root),
Expand Down
3 changes: 1 addition & 2 deletions packages/next-swc/crates/next-api/src/middleware.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ use anyhow::{bail, Context, Result};
use next_core::{
all_assets_from_entries,
middleware::get_middleware_module,
mode::NextMode,
next_edge::entry::wrap_edge_entry,
next_manifests::{
AssetBinding, EdgeFunctionDefinition, MiddlewareMatcher, MiddlewaresManifestV2,
Expand Down Expand Up @@ -80,7 +79,7 @@ impl MiddlewareEndpoint {

let mut evaluatable_assets = get_server_runtime_entries(
Value::new(ServerContextType::Middleware),
NextMode::Development,
self.project.next_mode(),
)
.resolve_entries(self.context)
.await?
Expand Down
34 changes: 12 additions & 22 deletions packages/next-swc/crates/next-api/src/pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,13 @@ use crate::{
#[turbo_tasks::value]
pub struct PagesProject {
project: Vc<Project>,
mode: NextMode,
mode: Vc<NextMode>,
timneutkens marked this conversation as resolved.
Show resolved Hide resolved
}

#[turbo_tasks::value_impl]
impl PagesProject {
#[turbo_tasks::function]
pub async fn new(project: Vc<Project>, mode: NextMode) -> Result<Vc<Self>> {
pub async fn new(project: Vc<Project>, mode: Vc<NextMode>) -> Result<Vc<Self>> {
Ok(PagesProject { project, mode }.cell())
}

Expand Down Expand Up @@ -280,28 +280,26 @@ impl PagesProject {

#[turbo_tasks::function]
async fn client_module_options_context(self: Vc<Self>) -> Result<Vc<ModuleOptionsContext>> {
let this = self.await?;
Ok(get_client_module_options_context(
self.project().project_path(),
self.project().execution_context(),
self.project().client_compile_time_info().environment(),
Value::new(ClientContextType::Pages {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
))
}

#[turbo_tasks::function]
async fn client_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_client_resolve_options_context(
self.project().project_path(),
Value::new(ClientContextType::Pages {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
Expand Down Expand Up @@ -388,49 +386,45 @@ impl PagesProject {

#[turbo_tasks::function]
async fn ssr_module_options_context(self: Vc<Self>) -> Result<Vc<ModuleOptionsContext>> {
let this = self.await?;
Ok(get_server_module_options_context(
self.project().project_path(),
self.project().execution_context(),
Value::new(ServerContextType::Pages {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
))
}

#[turbo_tasks::function]
async fn api_module_options_context(self: Vc<Self>) -> Result<Vc<ModuleOptionsContext>> {
let this = self.await?;
Ok(get_server_module_options_context(
self.project().project_path(),
self.project().execution_context(),
Value::new(ServerContextType::PagesApi {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
))
}

#[turbo_tasks::function]
async fn ssr_data_module_options_context(self: Vc<Self>) -> Result<Vc<ModuleOptionsContext>> {
let this = self.await?;
Ok(get_server_module_options_context(
self.project().project_path(),
self.project().execution_context(),
Value::new(ServerContextType::PagesData {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
))
}

#[turbo_tasks::function]
async fn ssr_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_server_resolve_options_context(
self.project().project_path(),
// NOTE(alexkirsz) This could be `PagesData` for the data endpoint, but it doesn't
Expand All @@ -439,15 +433,14 @@ impl PagesProject {
Value::new(ServerContextType::Pages {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
}

#[turbo_tasks::function]
async fn edge_ssr_resolve_options_context(self: Vc<Self>) -> Result<Vc<ResolveOptionsContext>> {
let this = self.await?;
Ok(get_edge_resolve_options_context(
self.project().project_path(),
// NOTE(alexkirsz) This could be `PagesData` for the data endpoint, but it doesn't
Expand All @@ -456,21 +449,20 @@ impl PagesProject {
Value::new(ServerContextType::Pages {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
))
}

#[turbo_tasks::function]
async fn client_runtime_entries(self: Vc<Self>) -> Result<Vc<EvaluatableAssets>> {
let this = self.await?;
let client_runtime_entries = get_client_runtime_entries(
self.project().project_path(),
Value::new(ClientContextType::Pages {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
self.project().next_config(),
self.project().execution_context(),
);
Expand All @@ -479,23 +471,21 @@ impl PagesProject {

#[turbo_tasks::function]
async fn runtime_entries(self: Vc<Self>) -> Result<Vc<RuntimeEntries>> {
let this = self.await?;
Ok(get_server_runtime_entries(
Value::new(ServerContextType::Pages {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
))
}

#[turbo_tasks::function]
async fn data_runtime_entries(self: Vc<Self>) -> Result<Vc<RuntimeEntries>> {
let this = self.await?;
Ok(get_server_runtime_entries(
Value::new(ServerContextType::PagesData {
pages_dir: self.pages_dir(),
}),
this.mode,
self.project().next_mode(),
))
}

Expand Down