summaryrefslogtreecommitdiff
path: root/cli/ops
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops')
-rw-r--r--cli/ops/errors.rs14
-rw-r--r--cli/ops/mod.rs28
-rw-r--r--cli/ops/runtime_compiler.rs9
-rw-r--r--cli/ops/testing.rs31
4 files changed, 62 insertions, 20 deletions
diff --git a/cli/ops/errors.rs b/cli/ops/errors.rs
index 14d21ee84..92843f577 100644
--- a/cli/ops/errors.rs
+++ b/cli/ops/errors.rs
@@ -6,18 +6,24 @@ use crate::proc_state::ProcState;
use crate::source_maps::get_orig_position;
use crate::source_maps::CachedMaps;
use deno_core::error::AnyError;
+use deno_core::op_sync;
use deno_core::serde_json;
use deno_core::serde_json::json;
use deno_core::serde_json::Value;
+use deno_core::Extension;
use deno_core::OpState;
use serde::Deserialize;
use serde::Serialize;
use std::collections::HashMap;
-pub fn init(rt: &mut deno_core::JsRuntime) {
- super::reg_sync(rt, "op_apply_source_map", op_apply_source_map);
- super::reg_sync(rt, "op_format_diagnostic", op_format_diagnostic);
- super::reg_sync(rt, "op_format_file_name", op_format_file_name);
+pub fn init() -> Extension {
+ Extension::builder()
+ .ops(vec![
+ ("op_apply_source_map", op_sync(op_apply_source_map)),
+ ("op_format_diagnostic", op_sync(op_format_diagnostic)),
+ ("op_format_file_name", op_sync(op_format_file_name)),
+ ])
+ .build()
}
#[derive(Deserialize)]
diff --git a/cli/ops/mod.rs b/cli/ops/mod.rs
index a3df77fac..3584bdbef 100644
--- a/cli/ops/mod.rs
+++ b/cli/ops/mod.rs
@@ -1,7 +1,29 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-pub mod errors;
-pub mod runtime_compiler;
+use crate::proc_state::ProcState;
+use deno_core::Extension;
+
+mod errors;
+mod runtime_compiler;
pub mod testing;
-pub use deno_runtime::ops::{reg_async, reg_sync};
+pub fn cli_exts(ps: ProcState, enable_compiler: bool) -> Vec<Extension> {
+ if enable_compiler {
+ vec![
+ init_proc_state(ps),
+ errors::init(),
+ runtime_compiler::init(),
+ ]
+ } else {
+ vec![init_proc_state(ps), errors::init()]
+ }
+}
+
+fn init_proc_state(ps: ProcState) -> Extension {
+ Extension::builder()
+ .state(move |state| {
+ state.put(ps.clone());
+ Ok(())
+ })
+ .build()
+}
diff --git a/cli/ops/runtime_compiler.rs b/cli/ops/runtime_compiler.rs
index 46aaafd09..11504edd5 100644
--- a/cli/ops/runtime_compiler.rs
+++ b/cli/ops/runtime_compiler.rs
@@ -15,13 +15,14 @@ use deno_core::anyhow::Context;
use deno_core::error::custom_error;
use deno_core::error::generic_error;
use deno_core::error::AnyError;
+use deno_core::op_async;
use deno_core::parking_lot::RwLock;
use deno_core::resolve_url_or_path;
use deno_core::serde_json;
use deno_core::serde_json::Value;
+use deno_core::Extension;
use deno_core::ModuleSpecifier;
use deno_core::OpState;
-use deno_graph;
use deno_runtime::permissions::Permissions;
use import_map::ImportMap;
use serde::Deserialize;
@@ -32,8 +33,10 @@ use std::collections::HashSet;
use std::rc::Rc;
use std::sync::Arc;
-pub fn init(rt: &mut deno_core::JsRuntime) {
- super::reg_async(rt, "op_emit", op_emit);
+pub fn init() -> Extension {
+ Extension::builder()
+ .ops(vec![("op_emit", op_async(op_emit))])
+ .build()
}
#[derive(Debug, Deserialize)]
diff --git a/cli/ops/testing.rs b/cli/ops/testing.rs
index cf6d7b244..928fb5a20 100644
--- a/cli/ops/testing.rs
+++ b/cli/ops/testing.rs
@@ -1,7 +1,8 @@
use crate::tools::test::TestEvent;
use deno_core::error::generic_error;
use deno_core::error::AnyError;
-use deno_core::JsRuntime;
+use deno_core::op_sync;
+use deno_core::Extension;
use deno_core::ModuleSpecifier;
use deno_core::OpState;
use deno_runtime::permissions::create_child_permissions;
@@ -10,15 +11,25 @@ use deno_runtime::permissions::Permissions;
use std::sync::mpsc::Sender;
use uuid::Uuid;
-pub fn init(rt: &mut JsRuntime) {
- super::reg_sync(rt, "op_pledge_test_permissions", op_pledge_test_permissions);
- super::reg_sync(
- rt,
- "op_restore_test_permissions",
- op_restore_test_permissions,
- );
- super::reg_sync(rt, "op_get_test_origin", op_get_test_origin);
- super::reg_sync(rt, "op_dispatch_test_event", op_dispatch_test_event);
+pub fn init(sender: Sender<TestEvent>) -> Extension {
+ Extension::builder()
+ .ops(vec![
+ (
+ "op_pledge_test_permissions",
+ op_sync(op_pledge_test_permissions),
+ ),
+ (
+ "op_restore_test_permissions",
+ op_sync(op_restore_test_permissions),
+ ),
+ ("op_get_test_origin", op_sync(op_get_test_origin)),
+ ("op_dispatch_test_event", op_sync(op_dispatch_test_event)),
+ ])
+ .state(move |state| {
+ state.put(sender.clone());
+ Ok(())
+ })
+ .build()
}
#[derive(Clone)]