mirror of
https://github.com/denoland/deno.git
synced 2025-09-20 01:19:51 +00:00

Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
74 lines
2.3 KiB
Rust
74 lines
2.3 KiB
Rust
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
|
|
use std::borrow::Cow;
|
|
|
|
use deno_media_type::MediaType;
|
|
use deno_resolver::loader::LoadedModuleSource;
|
|
use deno_runtime::deno_core::FastString;
|
|
use deno_runtime::deno_core::ModuleSourceCode;
|
|
use deno_runtime::deno_core::ModuleType;
|
|
use deno_runtime::deno_core::RequestedModuleType;
|
|
|
|
pub fn module_type_from_media_and_requested_type(
|
|
media_type: MediaType,
|
|
requested_module_type: &RequestedModuleType,
|
|
) -> ModuleType {
|
|
match requested_module_type {
|
|
RequestedModuleType::Text => ModuleType::Text,
|
|
RequestedModuleType::Bytes => ModuleType::Bytes,
|
|
RequestedModuleType::None
|
|
| RequestedModuleType::Other(_)
|
|
| RequestedModuleType::Json => match media_type {
|
|
MediaType::Json => ModuleType::Json,
|
|
MediaType::Wasm => ModuleType::Wasm,
|
|
_ => ModuleType::JavaScript,
|
|
},
|
|
}
|
|
}
|
|
|
|
pub fn loaded_module_source_to_module_source_code(
|
|
loaded_module_source: LoadedModuleSource,
|
|
) -> ModuleSourceCode {
|
|
match loaded_module_source {
|
|
LoadedModuleSource::ArcStr(text) => ModuleSourceCode::String(text.into()),
|
|
LoadedModuleSource::ArcBytes(bytes) => {
|
|
ModuleSourceCode::Bytes(bytes.into())
|
|
}
|
|
LoadedModuleSource::String(text) => match text {
|
|
Cow::Borrowed(static_text) => {
|
|
ModuleSourceCode::String(FastString::from_static(static_text))
|
|
}
|
|
Cow::Owned(text) => ModuleSourceCode::String(text.into()),
|
|
},
|
|
LoadedModuleSource::Bytes(bytes) => match bytes {
|
|
Cow::Borrowed(static_bytes) => {
|
|
ModuleSourceCode::Bytes(static_bytes.into())
|
|
}
|
|
Cow::Owned(bytes) => {
|
|
ModuleSourceCode::Bytes(bytes.into_boxed_slice().into())
|
|
}
|
|
},
|
|
}
|
|
}
|
|
|
|
pub fn as_deno_resolver_requested_module_type(
|
|
value: &RequestedModuleType,
|
|
) -> deno_resolver::loader::RequestedModuleType<'_> {
|
|
match value {
|
|
RequestedModuleType::None => {
|
|
deno_resolver::loader::RequestedModuleType::None
|
|
}
|
|
RequestedModuleType::Json => {
|
|
deno_resolver::loader::RequestedModuleType::Json
|
|
}
|
|
RequestedModuleType::Text => {
|
|
deno_resolver::loader::RequestedModuleType::Text
|
|
}
|
|
RequestedModuleType::Bytes => {
|
|
deno_resolver::loader::RequestedModuleType::Bytes
|
|
}
|
|
RequestedModuleType::Other(text) => {
|
|
deno_resolver::loader::RequestedModuleType::Other(text)
|
|
}
|
|
}
|
|
}
|