diff options
author | Matt Mastracci <matthew@mastracci.com> | 2024-03-13 21:23:37 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-14 04:23:37 +0100 |
commit | 66fd6f286641d4d2491d7b4bb314bd7e7eff16d8 (patch) | |
tree | b84aa4cac4c0a756539c91e5df4193d3636ae2bb /runtime/examples | |
parent | 1f3c4c976313904d5df0b33b2cc0e282e62d1000 (diff) |
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 <matthew@mastracci.com>
Diffstat (limited to 'runtime/examples')
-rw-r--r-- | runtime/examples/extension/bootstrap.js (renamed from runtime/examples/extension_with_esm/bootstrap.js) | 4 | ||||
-rw-r--r-- | runtime/examples/extension/main.js (renamed from runtime/examples/extension_with_esm/main.js) | 4 | ||||
-rw-r--r-- | runtime/examples/extension/main.rs (renamed from runtime/examples/extension_with_esm/main.rs) | 14 | ||||
-rw-r--r-- | runtime/examples/extension_with_ops/main.js | 2 | ||||
-rw-r--r-- | runtime/examples/extension_with_ops/main.rs | 38 |
5 files changed, 16 insertions, 46 deletions
diff --git a/runtime/examples/extension_with_esm/bootstrap.js b/runtime/examples/extension/bootstrap.js index 7cbff9cb3..9461acb84 100644 --- a/runtime/examples/extension_with_esm/bootstrap.js +++ b/runtime/examples/extension/bootstrap.js @@ -1,5 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +import { op_hello } from "ext:core/ops"; function hello() { - console.log("Hello from extension!"); + op_hello("world"); } + globalThis.Extension = { hello }; diff --git a/runtime/examples/extension_with_esm/main.js b/runtime/examples/extension/main.js index fe9be8c26..4d6e4e3b7 100644 --- a/runtime/examples/extension_with_esm/main.js +++ b/runtime/examples/extension/main.js @@ -1,4 +1,4 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -console.log("Hello world!"); -console.log(Deno); +console.log("Hello world from JS!"); +console.log(Deno.build); Extension.hello(); diff --git a/runtime/examples/extension_with_esm/main.rs b/runtime/examples/extension/main.rs index c635761e1..0026d0de0 100644 --- a/runtime/examples/extension_with_esm/main.rs +++ b/runtime/examples/extension/main.rs @@ -4,23 +4,31 @@ 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_with_esm", "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_with_esm/main.js"); + 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(), 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(()) -} |