Skip to content

Commit f85c0ca

Browse files
authored
fix(deploy): dont use jsr api for deploy subcommand (#32441)
1 parent 739f9ae commit f85c0ca

File tree

2 files changed

+19
-30
lines changed

2 files changed

+19
-30
lines changed

cli/registry.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,6 @@ pub struct PublishingTask {
5353
pub error: Option<PublishingTaskError>,
5454
}
5555

56-
#[derive(serde::Deserialize)]
57-
#[serde(rename_all = "camelCase")]
58-
pub struct Package {
59-
pub latest_version: Option<String>,
60-
}
61-
6256
#[derive(serde::Deserialize)]
6357
#[serde(rename_all = "camelCase")]
6458
pub struct ApiError {

cli/tools/deploy.rs

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ use std::sync::Arc;
55
use deno_config::deno_json::NewestDependencyDate;
66
use deno_config::deno_json::NodeModulesDirMode;
77
use deno_core::error::AnyError;
8+
use deno_core::serde_json;
89
use deno_core::url::Url;
10+
use deno_graph::packages::JsrPackageInfo;
911
use deno_path_util::ResolveUrlOrPathError;
1012
use deno_runtime::WorkerExecutionMode;
1113
use deno_runtime::deno_permissions::PermissionsContainer;
1214

1315
use crate::args::DeployFlags;
1416
use crate::args::Flags;
15-
use crate::args::jsr_api_url;
1617
use crate::factory::CliFactory;
1718
use crate::ops;
18-
use crate::registry;
1919

2020
pub async fn deploy(
2121
mut flags: Flags,
@@ -33,41 +33,36 @@ pub async fn deploy(
3333

3434
let mut factory = CliFactory::from_flags(Arc::new(flags));
3535

36-
let maybe_specifier_override =
36+
let specifier =
3737
if let Ok(specifier) = std::env::var("DENO_DEPLOY_CLI_SPECIFIER") {
3838
let specifier =
3939
Url::parse(&specifier).map_err(ResolveUrlOrPathError::UrlParse)?;
4040
if let Ok(path) = specifier.to_file_path() {
4141
factory.set_initial_cwd(path);
4242
}
4343

44-
Some(specifier)
44+
specifier
4545
} else {
46-
None
46+
let registry_url = crate::args::jsr_url();
47+
let file = factory
48+
.file_fetcher()?
49+
.fetch_bypass_permissions(
50+
&registry_url.join("@deploy/deno/meta.json").unwrap(),
51+
)
52+
.await?;
53+
let info = serde_json::from_slice::<JsrPackageInfo>(&file.source)?;
54+
let latest_version = info
55+
.versions
56+
.keys()
57+
.max()
58+
.expect("expected @deno/deploy to be published");
59+
Url::parse(&format!("jsr:@deno/deploy@{latest_version}"))
60+
.map_err(ResolveUrlOrPathError::UrlParse)?
4761
};
4862

49-
let client = factory.http_client_provider().get_or_create()?;
50-
let registry_api_url = jsr_api_url();
51-
52-
let response =
53-
registry::get_package(&client, registry_api_url, "deno", "deploy").await?;
54-
let res = registry::parse_response::<registry::Package>(response).await?;
55-
5663
let worker_factory =
5764
Arc::new(factory.create_cli_main_worker_factory().await?);
5865

59-
let specifier = if let Some(specifier) = maybe_specifier_override {
60-
specifier
61-
} else {
62-
Url::parse(&format!(
63-
"jsr:@deno/deploy@{}",
64-
res
65-
.latest_version
66-
.expect("expected @deno/deploy to be published")
67-
))
68-
.map_err(ResolveUrlOrPathError::UrlParse)?
69-
};
70-
7166
let mut worker = worker_factory
7267
.create_custom_worker(
7368
WorkerExecutionMode::Deploy,

0 commit comments

Comments
 (0)