summaryrefslogtreecommitdiff
path: root/runtime/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/worker.rs')
-rw-r--r--runtime/worker.rs76
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();
}