summaryrefslogtreecommitdiff
path: root/cli/tools/registry/unfurl.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-08-07 09:43:05 +0200
committerGitHub <noreply@github.com>2024-08-07 07:43:05 +0000
commit04473c04ed59cc2a987af3405074591fbc1341a4 (patch)
tree50d56d1990328a6d32627e74ef73514525d78fde /cli/tools/registry/unfurl.rs
parent4fa8869f2487749a9f190cb3047f4f3e6d571f27 (diff)
fix(compile): support workspace members importing other members (#24909)
Diffstat (limited to 'cli/tools/registry/unfurl.rs')
-rw-r--r--cli/tools/registry/unfurl.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/cli/tools/registry/unfurl.rs b/cli/tools/registry/unfurl.rs
index a28ba445a..489c9a1be 100644
--- a/cli/tools/registry/unfurl.rs
+++ b/cli/tools/registry/unfurl.rs
@@ -75,6 +75,9 @@ impl SpecifierUnfurler {
match resolved {
MappedResolution::Normal(specifier)
| MappedResolution::ImportMap(specifier) => Some(specifier),
+ MappedResolution::WorkspaceJsrPackage { pkg_req_ref, .. } => {
+ Some(ModuleSpecifier::parse(&pkg_req_ref.to_string()).unwrap())
+ }
MappedResolution::WorkspaceNpmPackage {
target_pkg_json: pkg_json,
pkg_name,
@@ -388,11 +391,14 @@ mod tests {
use super::*;
use deno_ast::MediaType;
use deno_ast::ModuleSpecifier;
+ use deno_config::workspace::ResolverWorkspaceJsrPackage;
use deno_core::serde_json::json;
use deno_core::url::Url;
use deno_runtime::deno_fs::RealFs;
use deno_runtime::deno_node::PackageJson;
+ use deno_semver::Version;
use import_map::ImportMapWithDiagnostics;
+ use indexmap::IndexMap;
use pretty_assertions::assert_eq;
use test_util::testdata_path;
@@ -436,6 +442,13 @@ mod tests {
let workspace_resolver = WorkspaceResolver::new_raw(
Arc::new(ModuleSpecifier::from_directory_path(&cwd).unwrap()),
Some(import_map),
+ vec![ResolverWorkspaceJsrPackage {
+ base: ModuleSpecifier::from_directory_path(cwd.join("jsr-package"))
+ .unwrap(),
+ name: "@denotest/example".to_string(),
+ version: Some(Version::parse_standard("1.0.0").unwrap()),
+ exports: IndexMap::from([(".".to_string(), "mod.ts".to_string())]),
+ }],
vec![Arc::new(package_json)],
deno_config::workspace::PackageJsonDepResolution::Enabled,
);
@@ -458,6 +471,7 @@ import b from "./b.js";
import b2 from "./b";
import "./mod.ts";
import url from "url";
+import "@denotest/example";
// TODO: unfurl these to jsr
// import "npm:@jsr/std__fs@1/file";
// import "npm:@jsr/std__fs@1";
@@ -507,6 +521,7 @@ import b from "./b.ts";
import b2 from "./b.ts";
import "./mod.ts";
import url from "node:url";
+import "jsr:@denotest/example@^1.0.0";
// TODO: unfurl these to jsr
// import "npm:@jsr/std__fs@1/file";
// import "npm:@jsr/std__fs@1";