From 66fd6f286641d4d2491d7b4bb314bd7e7eff16d8 Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Wed, 13 Mar 2024 21:23:37 -0600 Subject: fix(cli): unbreak extension example and fix __runtime_js_sources (#22906) Better example to close https://github.com/denoland/deno/issues/22600 --------- Signed-off-by: Matt Mastracci --- runtime/examples/extension/bootstrap.js | 7 ++++ runtime/examples/extension/main.js | 4 +++ runtime/examples/extension/main.rs | 44 ++++++++++++++++++++++++ runtime/examples/extension_with_esm/bootstrap.js | 5 --- runtime/examples/extension_with_esm/main.js | 4 --- runtime/examples/extension_with_esm/main.rs | 36 ------------------- runtime/examples/extension_with_ops/main.js | 2 -- runtime/examples/extension_with_ops/main.rs | 38 -------------------- 8 files changed, 55 insertions(+), 85 deletions(-) create mode 100644 runtime/examples/extension/bootstrap.js create mode 100644 runtime/examples/extension/main.js create mode 100644 runtime/examples/extension/main.rs delete mode 100644 runtime/examples/extension_with_esm/bootstrap.js delete mode 100644 runtime/examples/extension_with_esm/main.js delete mode 100644 runtime/examples/extension_with_esm/main.rs delete mode 100644 runtime/examples/extension_with_ops/main.js delete mode 100644 runtime/examples/extension_with_ops/main.rs (limited to 'runtime/examples') diff --git a/runtime/examples/extension/bootstrap.js b/runtime/examples/extension/bootstrap.js new file mode 100644 index 000000000..9461acb84 --- /dev/null +++ b/runtime/examples/extension/bootstrap.js @@ -0,0 +1,7 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +import { op_hello } from "ext:core/ops"; +function hello() { + op_hello("world"); +} + +globalThis.Extension = { hello }; diff --git a/runtime/examples/extension/main.js b/runtime/examples/extension/main.js new file mode 100644 index 000000000..4d6e4e3b7 --- /dev/null +++ b/runtime/examples/extension/main.js @@ -0,0 +1,4 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +console.log("Hello world from JS!"); +console.log(Deno.build); +Extension.hello(); diff --git a/runtime/examples/extension/main.rs b/runtime/examples/extension/main.rs new file mode 100644 index 000000000..0026d0de0 --- /dev/null +++ b/runtime/examples/extension/main.rs @@ -0,0 +1,44 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +use std::path::Path; +use std::rc::Rc; + +use deno_core::error::AnyError; +use deno_core::op2; +use deno_core::FsModuleLoader; +use deno_core::ModuleSpecifier; +use deno_runtime::permissions::PermissionsContainer; +use deno_runtime::worker::MainWorker; +use deno_runtime::worker::WorkerOptions; + +#[op2(fast)] +fn op_hello(#[string] text: &str) { + println!("Hello {} from an op!", text); +} + +deno_core::extension!( + hello_runtime, + ops = [op_hello], + esm_entry_point = "ext:hello_runtime/bootstrap.js", + esm = [dir "examples/extension", "bootstrap.js"] +); + +#[tokio::main] +async fn main() -> Result<(), AnyError> { + let js_path = + Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/extension/main.js"); + let main_module = ModuleSpecifier::from_file_path(js_path).unwrap(); + eprintln!("Running {main_module}..."); + let mut worker = MainWorker::bootstrap_from_options( + main_module.clone(), + PermissionsContainer::allow_all(), + WorkerOptions { + module_loader: Rc::new(FsModuleLoader), + extensions: vec![hello_runtime::init_ops_and_esm()], + ..Default::default() + }, + ); + worker.execute_main_module(&main_module).await?; + worker.run_event_loop(false).await?; + Ok(()) +} diff --git a/runtime/examples/extension_with_esm/bootstrap.js b/runtime/examples/extension_with_esm/bootstrap.js deleted file mode 100644 index 7cbff9cb3..000000000 --- a/runtime/examples/extension_with_esm/bootstrap.js +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -function hello() { - console.log("Hello from extension!"); -} -globalThis.Extension = { hello }; diff --git a/runtime/examples/extension_with_esm/main.js b/runtime/examples/extension_with_esm/main.js deleted file mode 100644 index fe9be8c26..000000000 --- a/runtime/examples/extension_with_esm/main.js +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -console.log("Hello world!"); -console.log(Deno); -Extension.hello(); diff --git a/runtime/examples/extension_with_esm/main.rs b/runtime/examples/extension_with_esm/main.rs deleted file mode 100644 index c635761e1..000000000 --- a/runtime/examples/extension_with_esm/main.rs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -use std::path::Path; -use std::rc::Rc; - -use deno_core::error::AnyError; -use deno_core::FsModuleLoader; -use deno_core::ModuleSpecifier; -use deno_runtime::permissions::PermissionsContainer; -use deno_runtime::worker::MainWorker; -use deno_runtime::worker::WorkerOptions; - -deno_core::extension!( - hello_runtime, - esm_entry_point = "ext:hello_runtime/bootstrap.js", - esm = [dir "examples/extension_with_esm", "bootstrap.js"] -); - -#[tokio::main] -async fn main() -> Result<(), AnyError> { - let js_path = Path::new(env!("CARGO_MANIFEST_DIR")) - .join("examples/extension_with_esm/main.js"); - let main_module = ModuleSpecifier::from_file_path(js_path).unwrap(); - let mut worker = MainWorker::bootstrap_from_options( - main_module.clone(), - PermissionsContainer::allow_all(), - WorkerOptions { - module_loader: Rc::new(FsModuleLoader), - extensions: vec![hello_runtime::init_ops_and_esm()], - ..Default::default() - }, - ); - worker.execute_main_module(&main_module).await?; - worker.run_event_loop(false).await?; - Ok(()) -} diff --git a/runtime/examples/extension_with_ops/main.js b/runtime/examples/extension_with_ops/main.js deleted file mode 100644 index d7cdc1ec4..000000000 --- a/runtime/examples/extension_with_ops/main.js +++ /dev/null @@ -1,2 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -Deno[Deno.internal].core.ops.op_hello("World"); diff --git a/runtime/examples/extension_with_ops/main.rs b/runtime/examples/extension_with_ops/main.rs deleted file mode 100644 index f0b4364b5..000000000 --- a/runtime/examples/extension_with_ops/main.rs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -use std::path::Path; -use std::rc::Rc; - -use deno_core::error::AnyError; -use deno_core::op2; -use deno_core::FsModuleLoader; -use deno_core::ModuleSpecifier; -use deno_runtime::permissions::PermissionsContainer; -use deno_runtime::worker::MainWorker; -use deno_runtime::worker::WorkerOptions; - -deno_core::extension!(hello_runtime, ops = [op_hello]); - -#[op2(fast)] -fn op_hello(#[string] text: &str) { - println!("Hello {}!", text); -} - -#[tokio::main] -async fn main() -> Result<(), AnyError> { - let js_path = Path::new(env!("CARGO_MANIFEST_DIR")) - .join("examples/extension_with_ops/main.js"); - let main_module = ModuleSpecifier::from_file_path(js_path).unwrap(); - let mut worker = MainWorker::bootstrap_from_options( - main_module.clone(), - PermissionsContainer::allow_all(), - WorkerOptions { - module_loader: Rc::new(FsModuleLoader), - extensions: vec![hello_runtime::init_ops()], - ..Default::default() - }, - ); - worker.execute_main_module(&main_module).await?; - worker.run_event_loop(false).await?; - Ok(()) -} -- cgit v1.2.3