0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-08 07:16:56 -05:00

refactor: use DataUrl from deno_media_type (#27783)

This was moved from deno_graph to deno_media_type.
This commit is contained in:
David Sherret 2025-01-22 15:35:16 -05:00 committed by GitHub
parent 25e243ad4e
commit 563a7c284e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 25 additions and 19 deletions

5
Cargo.lock generated
View file

@ -1275,6 +1275,7 @@ dependencies = [
"deno_lib", "deno_lib",
"deno_lint", "deno_lint",
"deno_lockfile", "deno_lockfile",
"deno_media_type",
"deno_npm", "deno_npm",
"deno_npm_cache", "deno_npm_cache",
"deno_package_json", "deno_package_json",
@ -1960,9 +1961,9 @@ dependencies = [
[[package]] [[package]]
name = "deno_media_type" name = "deno_media_type"
version = "0.2.4" version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "577fe2bbe04f3e9b1b7c6fac6a75101a9fbd611c50a6b68789e69f4d63dcb2b4" checksum = "600222d059ab31ff31182b3e12615df2134a9e01605836b78ad8df91ba39eab3"
dependencies = [ dependencies = [
"data-url", "data-url",
"encoding_rs", "encoding_rs",

View file

@ -56,7 +56,7 @@ deno_core = { version = "0.331.0" }
deno_bench_util = { version = "0.181.0", path = "./bench_util" } deno_bench_util = { version = "0.181.0", path = "./bench_util" }
deno_config = { version = "=0.45.0", features = ["workspace", "sync"] } deno_config = { version = "=0.45.0", features = ["workspace", "sync"] }
deno_lockfile = "=0.24.0" deno_lockfile = "=0.24.0"
deno_media_type = { version = "0.2.4", features = ["module_specifier"] } deno_media_type = { version = "=0.2.5", features = ["module_specifier"] }
deno_npm = "=0.27.2" deno_npm = "=0.27.2"
deno_path_util = "=0.3.0" deno_path_util = "=0.3.0"
deno_permissions = { version = "0.46.0", path = "./runtime/permissions" } deno_permissions = { version = "0.46.0", path = "./runtime/permissions" }

View file

@ -76,6 +76,7 @@ deno_graph = { version = "=0.87.0" }
deno_lib.workspace = true deno_lib.workspace = true
deno_lint = { version = "=0.68.2", features = ["docs"] } deno_lint = { version = "=0.68.2", features = ["docs"] }
deno_lockfile.workspace = true deno_lockfile.workspace = true
deno_media_type = { workspace = true, features = ["data_url", "decoding", "module_specifier"] }
deno_npm.workspace = true deno_npm.workspace = true
deno_npm_cache.workspace = true deno_npm_cache.workspace = true
deno_package_json.workspace = true deno_package_json.workspace = true

View file

@ -13,7 +13,7 @@ pub async fn resolve_import_map_value_from_specifier(
) -> Result<serde_json::Value, AnyError> { ) -> Result<serde_json::Value, AnyError> {
if specifier.scheme() == "data" { if specifier.scheme() == "data" {
let data_url_text = let data_url_text =
deno_graph::source::RawDataUrl::parse(specifier)?.decode()?; deno_media_type::data_url::RawDataUrl::parse(specifier)?.decode()?;
Ok(serde_json::from_str(&data_url_text)?) Ok(serde_json::from_str(&data_url_text)?)
} else { } else {
let file = TextDecodedFile::decode( let file = TextDecodedFile::decode(

View file

@ -60,11 +60,10 @@ impl TextDecodedFile {
file.maybe_headers.as_ref(), file.maybe_headers.as_ref(),
); );
let specifier = file.url; let specifier = file.url;
match deno_graph::source::decode_source( let charset = maybe_charset.unwrap_or_else(|| {
&specifier, deno_media_type::encoding::detect_charset(&specifier, &file.source)
file.source, });
maybe_charset, match deno_media_type::encoding::decode_arc_source(charset, file.source) {
) {
Ok(source) => Ok(TextDecodedFile { Ok(source) => Ok(TextDecodedFile {
media_type, media_type,
specifier, specifier,

View file

@ -936,7 +936,7 @@ impl FileSystemDocuments {
file_referrer.cloned(), file_referrer.cloned(),
) )
} else if specifier.scheme() == "data" { } else if specifier.scheme() == "data" {
let source = deno_graph::source::RawDataUrl::parse(specifier) let source = deno_media_type::data_url::RawDataUrl::parse(specifier)
.ok()? .ok()?
.decode() .decode()
.ok()?; .ok()?;
@ -1756,10 +1756,11 @@ fn bytes_to_content(
// we use the dts representation for Wasm modules // we use the dts representation for Wasm modules
Ok(deno_graph::source::wasm::wasm_module_to_dts(&bytes)?) Ok(deno_graph::source::wasm::wasm_module_to_dts(&bytes)?)
} else { } else {
Ok(deno_graph::source::decode_owned_source( let charset = maybe_charset.unwrap_or_else(|| {
specifier, deno_media_type::encoding::detect_charset(specifier, &bytes)
bytes, });
maybe_charset, Ok(deno_media_type::encoding::decode_owned_source(
charset, bytes,
)?) )?)
} }
} }

View file

@ -219,7 +219,8 @@ impl LspUrlMap {
let uri_str = if specifier.scheme() == "asset" { let uri_str = if specifier.scheme() == "asset" {
format!("deno:/asset{}", specifier.path()) format!("deno:/asset{}", specifier.path())
} else if specifier.scheme() == "data" { } else if specifier.scheme() == "data" {
let data_url = deno_graph::source::RawDataUrl::parse(specifier)?; let data_url =
deno_media_type::data_url::RawDataUrl::parse(specifier)?;
let media_type = data_url.media_type(); let media_type = data_url.media_type();
let extension = if media_type == MediaType::Unknown { let extension = if media_type == MediaType::Unknown {
"" ""

View file

@ -1179,10 +1179,13 @@ fn read_file_contents(file_path: &Path) -> Result<FileContents, AnyError> {
.with_context(|| format!("Error reading {}", file_path.display()))?; .with_context(|| format!("Error reading {}", file_path.display()))?;
let had_bom = file_bytes.starts_with(&[0xEF, 0xBB, 0xBF]); let had_bom = file_bytes.starts_with(&[0xEF, 0xBB, 0xBF]);
// will have the BOM stripped // will have the BOM stripped
let text = deno_graph::source::decode_owned_file_source(file_bytes) let charset =
.with_context(|| { deno_media_type::encoding::detect_charset_local_file(&file_bytes);
anyhow!("{} is not a valid UTF-8 file", file_path.display()) let text =
})?; deno_media_type::encoding::decode_owned_source(charset, file_bytes)
.with_context(|| {
anyhow!("{} is not a valid UTF-8 file", file_path.display())
})?;
Ok(FileContents { text, had_bom }) Ok(FileContents { text, had_bom })
} }