refactor: handle deno_media_type having Html and Sql variants (#28495)

This commit is contained in:
David Sherret 2025-03-14 11:19:08 -04:00 committed by Ryan Dahl
parent 9001068c23
commit 3c3b0dae76
16 changed files with 60 additions and 18 deletions

12
Cargo.lock generated
View file

@ -1610,9 +1610,9 @@ dependencies = [
[[package]]
name = "deno_ast"
version = "0.46.1"
version = "0.46.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88393f34aaba238da6a3694aef7e046eec4d261c3bf98dc6669d397f1c274e5e"
checksum = "b5700894f83f8d6a7507ed0667b27b812afbfe9bfdfd4d574191023a9c8c3a11"
dependencies = [
"base64 0.21.7",
"deno_error",
@ -2014,9 +2014,9 @@ dependencies = [
[[package]]
name = "deno_graph"
version = "0.89.1"
version = "0.89.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c38c64a94e1e7792aa6eab7b013a075d88b3e04387d2c1291ecc2934c930095"
checksum = "3e2570721f05ca346095896bd035acc35fd7cd95743077445418626a068a6b82"
dependencies = [
"async-trait",
"capacity_builder 0.5.0",
@ -2203,9 +2203,9 @@ dependencies = [
[[package]]
name = "deno_media_type"
version = "0.2.6"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "480223262efd08f96b3be5f0457c82bac7296e70dc4e7ef7350751f66293812c"
checksum = "3d9080fcfcea53bcd6eea1916217bd5611c896f3a0db4c001a859722a1258a47"
dependencies = [
"data-url",
"encoding_rs",

View file

@ -50,16 +50,16 @@ license = "MIT"
repository = "https://github.com/denoland/deno"
[workspace.dependencies]
deno_ast = { version = "=0.46.1", features = ["transpiling"] }
deno_ast = { version = "=0.46.2", features = ["transpiling"] }
deno_core = { version = "0.340.0" }
deno_bench_util = { version = "0.188.0", path = "./bench_util" }
deno_config = { version = "=0.50.0", features = ["workspace"] }
deno_doc = "=0.169.0"
deno_graph = "=0.89.1"
deno_graph = "=0.89.2"
deno_lint = "=0.74.0"
deno_lockfile = "=0.24.0"
deno_media_type = { version = "=0.2.6", features = ["module_specifier"] }
deno_media_type = { version = "=0.2.8", features = ["module_specifier"] }
deno_npm = "=0.27.2"
deno_path_util = "=0.3.2"
deno_permissions = { version = "0.53.0", path = "./runtime/permissions" }

View file

@ -260,6 +260,8 @@ impl deno_graph::ModuleAnalyzer for ModuleInfoCacheModuleAnalyzer<'_> {
}
}
// note: there is no deserialize for this because this is only ever
// saved in the db and then used for comparisons
fn serialize_media_type(media_type: MediaType) -> i64 {
use MediaType::*;
match media_type {
@ -277,8 +279,10 @@ fn serialize_media_type(media_type: MediaType) -> i64 {
Json => 12,
Wasm => 13,
Css => 14,
SourceMap => 15,
Unknown => 16,
Html => 15,
SourceMap => 16,
Sql => 17,
Unknown => 18,
}
}

View file

@ -280,7 +280,9 @@ impl Emitter {
| MediaType::Json
| MediaType::Wasm
| MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => {
// clear this specifier from the parsed source cache as it's now out of date
self.parsed_source_cache.free(specifier);

View file

@ -237,8 +237,10 @@ fn serialize_media_type(media_type: MediaType) -> u8 {
MediaType::Json => 11,
MediaType::Wasm => 12,
MediaType::Css => 13,
MediaType::SourceMap => 14,
MediaType::Unknown => 15,
MediaType::Html => 14,
MediaType::SourceMap => 15,
MediaType::Sql => 16,
MediaType::Unknown => 17,
}
}
@ -260,8 +262,10 @@ impl<'a> DenoRtDeserializable<'a> for MediaType {
11 => MediaType::Json,
12 => MediaType::Wasm,
13 => MediaType::Css,
14 => MediaType::SourceMap,
15 => MediaType::Unknown,
14 => MediaType::Html,
15 => MediaType::SourceMap,
16 => MediaType::Sql,
17 => MediaType::Unknown,
value => {
return Err(std::io::Error::new(
std::io::ErrorKind::InvalidData,

View file

@ -1008,7 +1008,9 @@ impl Config {
MediaType::Json
| MediaType::Wasm
| MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => None,
}
}

View file

@ -1010,6 +1010,8 @@ impl Inner {
MediaType::Wasm
| MediaType::SourceMap
| MediaType::Css
| MediaType::Html
| MediaType::Sql
| MediaType::Unknown => {
if path.extension().and_then(|s| s.to_str()) != Some("jsonc") {
continue;

View file

@ -909,7 +909,11 @@ impl<TGraphContainer: ModuleGraphContainer>
source,
}));
}
MediaType::Css | MediaType::Wasm | MediaType::SourceMap => {
MediaType::Css
| MediaType::Html
| MediaType::Sql
| MediaType::Wasm
| MediaType::SourceMap => {
panic!("Unexpected media type {media_type} for {specifier}")
}
};

View file

@ -357,7 +357,11 @@ impl<'a> DenoCompileModuleData<'a> {
(ModuleType::Wasm, DenoCompileModuleSource::Bytes(data))
}
// just assume javascript if we made it here
MediaType::Css | MediaType::SourceMap | MediaType::Unknown => {
MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => {
(ModuleType::JavaScript, DenoCompileModuleSource::Bytes(data))
}
};

View file

@ -338,7 +338,11 @@ fn get_module_roots_and_include_files(
| MediaType::Tsx
| MediaType::Json
| MediaType::Wasm => true,
MediaType::Css | MediaType::SourceMap | MediaType::Unknown => false,
MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => false,
}
}

View file

@ -597,6 +597,8 @@ pub fn cover_files(
MediaType::JavaScript
| MediaType::Unknown
| MediaType::Css
| MediaType::Html
| MediaType::Sql
| MediaType::Wasm
| MediaType::Cjs
| MediaType::Mjs

View file

@ -88,6 +88,8 @@ impl<TSys: FsMetadata + FsRead> ModuleContentProvider<TSys> {
}
MediaType::SourceMap
| MediaType::Unknown
| MediaType::Html
| MediaType::Sql
| MediaType::Json
| MediaType::Wasm
| MediaType::Css => {

View file

@ -604,6 +604,8 @@ pub fn as_ts_script_kind(media_type: MediaType) -> i32 {
MediaType::Json => 6,
MediaType::SourceMap
| MediaType::Css
| MediaType::Html
| MediaType::Sql
| MediaType::Wasm
| MediaType::Unknown => 0,
}

View file

@ -833,7 +833,9 @@ impl<'a> GraphWalker<'a> {
MediaType::Json
| MediaType::Wasm
| MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => None,
};
if result.is_some() {
@ -947,7 +949,9 @@ fn has_ts_check(media_type: MediaType, file_text: &str) -> bool {
| MediaType::Json
| MediaType::Wasm
| MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => false,
}
}

View file

@ -196,7 +196,9 @@ impl<TInNpmPackageChecker: InNpmPackageChecker, TSys: FsRead>
| MediaType::Tsx
// treat these as unknown
| MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => {
match is_script {
Some(true) => self.check_based_on_pkg_json(specifier).unwrap_or(ResolutionMode::Import),
@ -241,7 +243,9 @@ impl<TInNpmPackageChecker: InNpmPackageChecker, TSys: FsRead>
| MediaType::Tsx
// treat these as unknown
| MediaType::Css
| MediaType::Html
| MediaType::SourceMap
| MediaType::Sql
| MediaType::Unknown => {
if let Some(value) = known_cache.get(specifier).map(|v| *v) {
if value == ResolutionMode::Require && is_script == Some(false) {

View file

@ -498,6 +498,8 @@ impl<TSys: FsMetadata> SloppyImportsResolver<TSys> {
| MediaType::Json
| MediaType::Wasm
| MediaType::Css
| MediaType::Html
| MediaType::Sql
| MediaType::SourceMap => {
return None;
}