summaryrefslogtreecommitdiff
path: root/cli/standalone/binary.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/standalone/binary.rs
parent4fa8869f2487749a9f190cb3047f4f3e6d571f27 (diff)
fix(compile): support workspace members importing other members (#24909)
Diffstat (limited to 'cli/standalone/binary.rs')
-rw-r--r--cli/standalone/binary.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs
index 8fb640be3..ed38e164b 100644
--- a/cli/standalone/binary.rs
+++ b/cli/standalone/binary.rs
@@ -19,6 +19,7 @@ use std::process::Command;
use deno_ast::ModuleSpecifier;
use deno_config::workspace::PackageJsonDepResolution;
+use deno_config::workspace::ResolverWorkspaceJsrPackage;
use deno_config::workspace::Workspace;
use deno_config::workspace::WorkspaceResolver;
use deno_core::anyhow::bail;
@@ -33,6 +34,7 @@ use deno_npm::NpmSystemInfo;
use deno_runtime::deno_node::PackageJson;
use deno_semver::npm::NpmVersionReqParseError;
use deno_semver::package::PackageReq;
+use deno_semver::Version;
use deno_semver::VersionReqSpecifierParseError;
use eszip::EszipRelativeFileBaseUrl;
use indexmap::IndexMap;
@@ -80,9 +82,18 @@ pub struct SerializedWorkspaceResolverImportMap {
pub json: String,
}
+#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
+pub struct SerializedResolverWorkspaceJsrPackage {
+ pub relative_base: String,
+ pub name: String,
+ pub version: Option<Version>,
+ pub exports: IndexMap<String, String>,
+}
+
#[derive(Deserialize, Serialize)]
pub struct SerializedWorkspaceResolver {
pub import_map: Option<SerializedWorkspaceResolverImportMap>,
+ pub jsr_pkgs: Vec<SerializedResolverWorkspaceJsrPackage>,
pub package_jsons: BTreeMap<String, serde_json::Value>,
pub pkg_json_resolution: PackageJsonDepResolution,
}
@@ -620,6 +631,16 @@ impl<'a> DenoCompileBinaryWriter<'a> {
json: i.to_json(),
}
}),
+ jsr_pkgs: self
+ .workspace_resolver
+ .jsr_packages()
+ .map(|pkg| SerializedResolverWorkspaceJsrPackage {
+ relative_base: root_dir_url.specifier_key(&pkg.base).into_owned(),
+ name: pkg.name.clone(),
+ version: pkg.version.clone(),
+ exports: pkg.exports.clone(),
+ })
+ .collect(),
package_jsons: self
.workspace_resolver
.package_jsons()