diff options
Diffstat (limited to 'runtime/worker.rs')
-rw-r--r-- | runtime/worker.rs | 76 |
1 files changed, 2 insertions, 74 deletions
diff --git a/runtime/worker.rs b/runtime/worker.rs index a31bd2ae1..6b9fca561 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -18,8 +18,6 @@ use deno_core::futures::Future; use deno_core::v8; use deno_core::CompiledWasmModuleStore; use deno_core::Extension; -#[cfg(feature = "__runtime_js_sources")] -use deno_core::ExtensionFileSource; use deno_core::FsModuleLoader; use deno_core::GetErrorClassFn; use deno_core::JsRuntime; @@ -44,6 +42,7 @@ use log::debug; use crate::inspector_server::InspectorServer; use crate::ops; use crate::permissions::PermissionsContainer; +use crate::shared::runtime; use crate::BootstrapOptions; pub type FormatJsErrorFn = dyn Fn(&JsError) -> String + Sync + Send; @@ -61,78 +60,6 @@ impl ExitCode { } } -// Duplicated in `build.rs`. Keep in sync! -deno_core::extension!( - runtime, - esm_entry_point = "ext:runtime/90_deno_ns.js", - esm = [ - dir "js", - "01_errors.js", - "01_version.ts", - "06_util.js", - "10_permissions.js", - "11_workers.js", - "13_buffer.js", - "30_os.js", - "40_fs_events.js", - "40_http.js", - "40_process.js", - "40_signals.js", - "40_tty.js", - "41_prompt.js", - "90_deno_ns.js", - "98_global_scope.js" - ], -); - -// Duplicated in `build.rs`. Keep in sync! -#[cfg(feature = "__runtime_js_sources")] -pub fn maybe_transpile_source( - source: &mut ExtensionFileSource, -) -> Result<(), AnyError> { - use deno_ast::MediaType; - use deno_ast::ParseParams; - use deno_ast::SourceTextInfo; - use deno_core::ExtensionFileSourceCode; - use std::path::Path; - - // Always transpile `node:` built-in modules, since they might be TypeScript. - let media_type = if source.specifier.starts_with("node:") { - MediaType::TypeScript - } else { - MediaType::from_path(Path::new(&source.specifier)) - }; - - match media_type { - MediaType::TypeScript => {} - MediaType::JavaScript => return Ok(()), - MediaType::Mjs => return Ok(()), - _ => panic!( - "Unsupported media type for snapshotting {media_type:?} for file {}", - source.specifier - ), - } - let code = source.load()?; - - let parsed = deno_ast::parse_module(ParseParams { - specifier: source.specifier.to_string(), - text_info: SourceTextInfo::from_string(code.as_str().to_owned()), - media_type, - capture_tokens: false, - scope_analysis: false, - maybe_syntax: None, - })?; - let transpiled_source = parsed.transpile(&deno_ast::EmitOptions { - imports_not_used_as_values: deno_ast::ImportsNotUsedAsValues::Remove, - inline_source_map: false, - ..Default::default() - })?; - - source.code = - ExtensionFileSourceCode::Computed(transpiled_source.text.into()); - Ok(()) -} - /// This worker is created and used by almost all /// subcommands in Deno executable. /// @@ -380,6 +307,7 @@ impl MainWorker { } #[cfg(feature = "__runtime_js_sources")] { + use crate::shared::maybe_transpile_source; for source in extension.esm_files.to_mut() { maybe_transpile_source(source).unwrap(); } |