summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock4
-rw-r--r--cli/Cargo.toml2
-rw-r--r--cli/args/mod.rs7
-rw-r--r--cli/lsp/language_server.rs3
-rw-r--r--cli/tools/registry/mod.rs2
-rw-r--r--tests/integration/publish_tests.rs8
-rw-r--r--tests/testdata/publish/jsr_jsonc/jsr.jsonc11
-rw-r--r--tests/testdata/publish/jsr_jsonc/mod.out6
-rw-r--r--tests/testdata/publish/jsr_jsonc/mod.ts7
-rw-r--r--tests/testdata/publish/jsr_jsonc/std_http.ts6
-rw-r--r--tests/testdata/publish/missing_deno_json.out2
11 files changed, 52 insertions, 6 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 21483e927..cf4cf5038 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1229,9 +1229,9 @@ dependencies = [
[[package]]
name = "deno_config"
-version = "0.11.0"
+version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52f2cedd7f47b50fb67191f9cb1c5633b47017fb7da5b586278763110879e5"
+checksum = "ebbc05e20df2d5b8562205f9b0c296bc528e833b0de126d489781952e13d939f"
dependencies = [
"anyhow",
"glob",
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index 1097d8d98..0d71eae1e 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -64,7 +64,7 @@ winres.workspace = true
[dependencies]
deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] }
deno_cache_dir = { workspace = true }
-deno_config = "=0.11.0"
+deno_config = "=0.12.0"
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
deno_doc = { version = "=0.113.1", features = ["html"] }
deno_emit = "=0.38.2"
diff --git a/cli/args/mod.rs b/cli/args/mod.rs
index 9aa819a30..8103f489e 100644
--- a/cli/args/mod.rs
+++ b/cli/args/mod.rs
@@ -759,10 +759,17 @@ impl CliOptions {
pub fn from_flags(flags: Flags) -> Result<Self, AnyError> {
let initial_cwd =
std::env::current_dir().with_context(|| "Failed getting cwd.")?;
+ let additional_config_file_names =
+ if matches!(flags.subcommand, DenoSubcommand::Publish(..)) {
+ Some(vec!["jsr.json", "jsr.jsonc"])
+ } else {
+ None
+ };
let maybe_config_file = ConfigFile::discover(
&flags.config_flag,
flags.config_path_args(&initial_cwd),
&initial_cwd,
+ additional_config_file_names,
)?;
let mut maybe_package_json = None;
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 185cde6f9..45d1eed8a 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -654,7 +654,8 @@ impl Inner {
if let Some(root_uri) = self.config.root_uri() {
let root_path = specifier_to_file_path(root_uri)?;
let mut checked = std::collections::HashSet::new();
- let maybe_config = ConfigFile::discover_from(&root_path, &mut checked)?;
+ let maybe_config =
+ ConfigFile::discover_from(&root_path, &mut checked, None)?;
Ok(maybe_config.map(|c| {
lsp_log!(" Auto-resolved configuration file: \"{}\"", c.specifier);
c
diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs
index ab02bc8d5..52d303ae1 100644
--- a/cli/tools/registry/mod.rs
+++ b/cli/tools/registry/mod.rs
@@ -817,7 +817,7 @@ pub async fn publish(
let cli_options = cli_factory.cli_options();
let Some(config_file) = cli_options.maybe_config_file() else {
bail!(
- "Couldn't find a deno.json or a deno.jsonc configuration file in {}.",
+ "Couldn't find a deno.json, deno.jsonc, jsr.json or jsr.jsonc configuration file in {}.",
directory_path.display()
);
};
diff --git a/tests/integration/publish_tests.rs b/tests/integration/publish_tests.rs
index e1626ae8d..d2ea27906 100644
--- a/tests/integration/publish_tests.rs
+++ b/tests/integration/publish_tests.rs
@@ -224,6 +224,14 @@ itest!(config_flag {
http_server: true,
});
+itest!(jsr_jsonc {
+ args: "publish --token 'sadfasdf'",
+ cwd: Some("publish/jsr_jsonc"),
+ output: "publish/jsr_jsonc/mod.out",
+ envs: env_vars_for_jsr_tests(),
+ http_server: true,
+});
+
#[test]
fn ignores_gitignore() {
let context = publish_context_builder().build();
diff --git a/tests/testdata/publish/jsr_jsonc/jsr.jsonc b/tests/testdata/publish/jsr_jsonc/jsr.jsonc
new file mode 100644
index 000000000..4c9dfb08c
--- /dev/null
+++ b/tests/testdata/publish/jsr_jsonc/jsr.jsonc
@@ -0,0 +1,11 @@
+{
+ // It's .jsonc file so it can have comments
+ "name": "@foo/bar",
+ "version": "1.0.0",
+ "exports": {
+ ".": "./mod.ts"
+ },
+ "imports": {
+ "@std/http": "./std_http.ts"
+ }
+}
diff --git a/tests/testdata/publish/jsr_jsonc/mod.out b/tests/testdata/publish/jsr_jsonc/mod.out
new file mode 100644
index 000000000..38b61d568
--- /dev/null
+++ b/tests/testdata/publish/jsr_jsonc/mod.out
@@ -0,0 +1,6 @@
+Check file:///[WILDCARD]/publish/jsr_jsonc/mod.ts
+Checking for slow types in the public API...
+Check file:///[WILDCARD]/publish/jsr_jsonc/mod.ts
+Publishing @foo/bar@1.0.0 ...
+Successfully published @foo/bar@1.0.0
+Visit http://127.0.0.1:4250/@foo/bar@1.0.0 for details
diff --git a/tests/testdata/publish/jsr_jsonc/mod.ts b/tests/testdata/publish/jsr_jsonc/mod.ts
new file mode 100644
index 000000000..6e8a61bae
--- /dev/null
+++ b/tests/testdata/publish/jsr_jsonc/mod.ts
@@ -0,0 +1,7 @@
+import http from "@std/http";
+
+export function foobar(): { fileServer(): void } {
+ return {
+ fileServer: http.fileServer,
+ };
+}
diff --git a/tests/testdata/publish/jsr_jsonc/std_http.ts b/tests/testdata/publish/jsr_jsonc/std_http.ts
new file mode 100644
index 000000000..9d57b36f3
--- /dev/null
+++ b/tests/testdata/publish/jsr_jsonc/std_http.ts
@@ -0,0 +1,6 @@
+// temp until we get jsr:@std/http in the test server
+export default {
+ fileServer() {
+ console.log("Hi");
+ },
+};
diff --git a/tests/testdata/publish/missing_deno_json.out b/tests/testdata/publish/missing_deno_json.out
index adb472c71..2c074bf83 100644
--- a/tests/testdata/publish/missing_deno_json.out
+++ b/tests/testdata/publish/missing_deno_json.out
@@ -1 +1 @@
-error: Couldn't find a deno.json or a deno.jsonc configuration file in [WILDCARD] \ No newline at end of file
+error: Couldn't find a deno.json, deno.jsonc, jsr.json or jsr.jsonc configuration file in [WILDCARD] \ No newline at end of file