Skip to content

Commit 86df6c3

Browse files
authored
feat: support "compilerOptions.rootDirs" (#152)
1 parent 808c6c5 commit 86df6c3

File tree

4 files changed

+523
-53
lines changed

4 files changed

+523
-53
lines changed

Cargo.lock

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ repository = "https://github.com/denoland/deno_config"
1111
members = ["."]
1212

1313
[workspace.dependencies]
14-
sys_traits = "0.1.0"
14+
sys_traits = "0.1.8"
1515

1616
[features]
1717
default = ["workspace"]

src/workspace/mod.rs

+28-6
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,14 @@ pub use resolver::MappedResolution;
7272
pub use resolver::MappedResolutionDiagnostic;
7373
pub use resolver::MappedResolutionError;
7474
pub use resolver::PackageJsonDepResolution;
75+
pub use resolver::ResolutionKind;
7576
pub use resolver::ResolverWorkspaceJsrPackage;
7677
pub use resolver::SpecifiedImportMap;
7778
pub use resolver::WorkspaceResolvePkgJsonFolderError;
7879
pub use resolver::WorkspaceResolvePkgJsonFolderErrorKind;
7980
pub use resolver::WorkspaceResolver;
8081
pub use resolver::WorkspaceResolverCreateError;
82+
pub use resolver::WorkspaceResolverDiagnostic;
8183

8284
#[allow(clippy::disallowed_types)]
8385
type UrlRc = crate::sync::MaybeArc<Url>;
@@ -558,11 +560,11 @@ impl Workspace {
558560
})
559561
}
560562

561-
pub fn create_resolver(
563+
pub fn create_resolver<TSys: FsMetadata + FsRead>(
562564
&self,
563-
sys: &impl FsRead,
565+
sys: TSys,
564566
options: CreateResolverOptions,
565-
) -> Result<WorkspaceResolver, WorkspaceResolverCreateError> {
567+
) -> Result<WorkspaceResolver<TSys>, WorkspaceResolverCreateError> {
566568
WorkspaceResolver::from_workspace(self, sys, options)
567569
}
568570

@@ -2124,7 +2126,7 @@ fn is_valid_jsr_pkg_name(name: &str) -> bool {
21242126
}
21252127

21262128
#[cfg(test)]
2127-
mod test {
2129+
pub mod test {
21282130
use std::cell::RefCell;
21292131
use std::collections::HashMap;
21302132

@@ -2145,7 +2147,27 @@ mod test {
21452147

21462148
use super::*;
21472149

2148-
struct UnreachableSys;
2150+
pub struct UnreachableSys;
2151+
2152+
impl sys_traits::BaseFsMetadata for UnreachableSys {
2153+
type Metadata = sys_traits::impls::RealFsMetadata;
2154+
2155+
#[doc(hidden)]
2156+
fn base_fs_metadata(
2157+
&self,
2158+
_path: &Path,
2159+
) -> std::io::Result<Self::Metadata> {
2160+
unreachable!()
2161+
}
2162+
2163+
#[doc(hidden)]
2164+
fn base_fs_symlink_metadata(
2165+
&self,
2166+
_path: &Path,
2167+
) -> std::io::Result<Self::Metadata> {
2168+
unreachable!()
2169+
}
2170+
}
21492171

21502172
impl sys_traits::BaseFsRead for UnreachableSys {
21512173
fn base_fs_read(
@@ -2713,7 +2735,7 @@ mod test {
27132735
);
27142736
let resolver = workspace_dir
27152737
.workspace
2716-
.create_resolver(&UnreachableSys, Default::default())
2738+
.create_resolver(UnreachableSys, Default::default())
27172739
.unwrap();
27182740
assert_eq!(
27192741
serde_json::from_str::<serde_json::Value>(

0 commit comments

Comments
 (0)