Skip to content

Commit 563a7c2

Browse files
authored
refactor: use DataUrl from deno_media_type (#27783)
This was moved from deno_graph to deno_media_type.
1 parent 25e243a commit 563a7c2

File tree

8 files changed

+25
-19
lines changed

8 files changed

+25
-19
lines changed

Cargo.lock

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ deno_core = { version = "0.331.0" }
5656
deno_bench_util = { version = "0.181.0", path = "./bench_util" }
5757
deno_config = { version = "=0.45.0", features = ["workspace", "sync"] }
5858
deno_lockfile = "=0.24.0"
59-
deno_media_type = { version = "0.2.4", features = ["module_specifier"] }
59+
deno_media_type = { version = "=0.2.5", features = ["module_specifier"] }
6060
deno_npm = "=0.27.2"
6161
deno_path_util = "=0.3.0"
6262
deno_permissions = { version = "0.46.0", path = "./runtime/permissions" }

cli/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ deno_graph = { version = "=0.87.0" }
7676
deno_lib.workspace = true
7777
deno_lint = { version = "=0.68.2", features = ["docs"] }
7878
deno_lockfile.workspace = true
79+
deno_media_type = { workspace = true, features = ["data_url", "decoding", "module_specifier"] }
7980
deno_npm.workspace = true
8081
deno_npm_cache.workspace = true
8182
deno_package_json.workspace = true

cli/args/import_map.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub async fn resolve_import_map_value_from_specifier(
1313
) -> Result<serde_json::Value, AnyError> {
1414
if specifier.scheme() == "data" {
1515
let data_url_text =
16-
deno_graph::source::RawDataUrl::parse(specifier)?.decode()?;
16+
deno_media_type::data_url::RawDataUrl::parse(specifier)?.decode()?;
1717
Ok(serde_json::from_str(&data_url_text)?)
1818
} else {
1919
let file = TextDecodedFile::decode(

cli/file_fetcher.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,10 @@ impl TextDecodedFile {
6060
file.maybe_headers.as_ref(),
6161
);
6262
let specifier = file.url;
63-
match deno_graph::source::decode_source(
64-
&specifier,
65-
file.source,
66-
maybe_charset,
67-
) {
63+
let charset = maybe_charset.unwrap_or_else(|| {
64+
deno_media_type::encoding::detect_charset(&specifier, &file.source)
65+
});
66+
match deno_media_type::encoding::decode_arc_source(charset, file.source) {
6867
Ok(source) => Ok(TextDecodedFile {
6968
media_type,
7069
specifier,

cli/lsp/documents.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -936,7 +936,7 @@ impl FileSystemDocuments {
936936
file_referrer.cloned(),
937937
)
938938
} else if specifier.scheme() == "data" {
939-
let source = deno_graph::source::RawDataUrl::parse(specifier)
939+
let source = deno_media_type::data_url::RawDataUrl::parse(specifier)
940940
.ok()?
941941
.decode()
942942
.ok()?;
@@ -1756,10 +1756,11 @@ fn bytes_to_content(
17561756
// we use the dts representation for Wasm modules
17571757
Ok(deno_graph::source::wasm::wasm_module_to_dts(&bytes)?)
17581758
} else {
1759-
Ok(deno_graph::source::decode_owned_source(
1760-
specifier,
1761-
bytes,
1762-
maybe_charset,
1759+
let charset = maybe_charset.unwrap_or_else(|| {
1760+
deno_media_type::encoding::detect_charset(specifier, &bytes)
1761+
});
1762+
Ok(deno_media_type::encoding::decode_owned_source(
1763+
charset, bytes,
17631764
)?)
17641765
}
17651766
}

cli/lsp/urls.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,8 @@ impl LspUrlMap {
219219
let uri_str = if specifier.scheme() == "asset" {
220220
format!("deno:/asset{}", specifier.path())
221221
} else if specifier.scheme() == "data" {
222-
let data_url = deno_graph::source::RawDataUrl::parse(specifier)?;
222+
let data_url =
223+
deno_media_type::data_url::RawDataUrl::parse(specifier)?;
223224
let media_type = data_url.media_type();
224225
let extension = if media_type == MediaType::Unknown {
225226
""

cli/tools/fmt.rs

+7-4
Original file line numberDiff line numberDiff line change
@@ -1179,10 +1179,13 @@ fn read_file_contents(file_path: &Path) -> Result<FileContents, AnyError> {
11791179
.with_context(|| format!("Error reading {}", file_path.display()))?;
11801180
let had_bom = file_bytes.starts_with(&[0xEF, 0xBB, 0xBF]);
11811181
// will have the BOM stripped
1182-
let text = deno_graph::source::decode_owned_file_source(file_bytes)
1183-
.with_context(|| {
1184-
anyhow!("{} is not a valid UTF-8 file", file_path.display())
1185-
})?;
1182+
let charset =
1183+
deno_media_type::encoding::detect_charset_local_file(&file_bytes);
1184+
let text =
1185+
deno_media_type::encoding::decode_owned_source(charset, file_bytes)
1186+
.with_context(|| {
1187+
anyhow!("{} is not a valid UTF-8 file", file_path.display())
1188+
})?;
11861189

11871190
Ok(FileContents { text, had_bom })
11881191
}

0 commit comments

Comments
 (0)