From d714ef16e10a3ded89fef911160638cf96e2f9be Mon Sep 17 00:00:00 2001 From: orionmiz Date: Sat, 19 Nov 2022 13:28:43 +0900 Subject: [PATCH 1/2] fix(next-swc/relay): allow nullable pages directory --- packages/next-swc/crates/core/src/relay.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/next-swc/crates/core/src/relay.rs b/packages/next-swc/crates/core/src/relay.rs index 0c4484270baf..c14501527a5e 100644 --- a/packages/next-swc/crates/core/src/relay.rs +++ b/packages/next-swc/crates/core/src/relay.rs @@ -27,7 +27,7 @@ impl Default for RelayLanguageConfig { struct Relay<'a> { root_dir: PathBuf, - pages_dir: PathBuf, + pages_dir: Option, file_name: FileName, config: &'a Config, } @@ -107,7 +107,9 @@ impl<'a> Relay<'a> { if let Some(artifact_directory) = &self.config.artifact_directory { Ok(self.root_dir.join(artifact_directory).join(filename)) - } else if real_file_name.starts_with(&self.pages_dir) { + } else if self.pages_dir.is_some() + && real_file_name.starts_with(self.pages_dir.as_ref().unwrap()) + { Err(BuildRequirePathError::ArtifactDirectoryExpected { file_name: real_file_name.display().to_string(), }) @@ -181,7 +183,7 @@ pub fn relay(config: &Config, file_name: FileName, pages_dir: Option) - Relay { root_dir: std::env::current_dir().unwrap(), file_name, - pages_dir: pages_dir.unwrap_or_else(|| panic!("pages_dir is expected.")), + pages_dir, config, } } From b43166e4a227b580f4aa73bcb2679b408a5ad6e6 Mon Sep 17 00:00:00 2001 From: orionmiz Date: Sat, 19 Nov 2022 18:54:59 +0900 Subject: [PATCH 2/2] refactor(next-swc/relay): use `map_or` function --- packages/next-swc/crates/core/src/relay.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/next-swc/crates/core/src/relay.rs b/packages/next-swc/crates/core/src/relay.rs index c14501527a5e..aced684c13ea 100644 --- a/packages/next-swc/crates/core/src/relay.rs +++ b/packages/next-swc/crates/core/src/relay.rs @@ -107,8 +107,10 @@ impl<'a> Relay<'a> { if let Some(artifact_directory) = &self.config.artifact_directory { Ok(self.root_dir.join(artifact_directory).join(filename)) - } else if self.pages_dir.is_some() - && real_file_name.starts_with(self.pages_dir.as_ref().unwrap()) + } else if self + .pages_dir + .as_ref() + .map_or(false, |pages_dir| real_file_name.starts_with(pages_dir)) { Err(BuildRequirePathError::ArtifactDirectoryExpected { file_name: real_file_name.display().to_string(),