summaryrefslogtreecommitdiff
path: root/ext/ffi/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/ffi/lib.rs')
-rw-r--r--ext/ffi/lib.rs24
1 files changed, 22 insertions, 2 deletions
diff --git a/ext/ffi/lib.rs b/ext/ffi/lib.rs
index 8a1227ed9..f93e2e121 100644
--- a/ext/ffi/lib.rs
+++ b/ext/ffi/lib.rs
@@ -5,6 +5,7 @@ use deno_core::futures::channel::mpsc;
use deno_core::include_js_files;
use deno_core::v8;
use deno_core::Extension;
+use deno_core::ExtensionBuilder;
use deno_core::OpState;
use std::cell::RefCell;
@@ -81,9 +82,15 @@ pub(crate) struct FfiState {
pub(crate) async_work_receiver: mpsc::UnboundedReceiver<PendingFfiAsyncWork>,
}
-pub fn init<P: FfiPermissions + 'static>(unstable: bool) -> Extension {
+fn ext() -> ExtensionBuilder {
Extension::builder_with_deps(env!("CARGO_PKG_NAME"), &["deno_web"])
- .esm(include_js_files!("00_ffi.js",))
+}
+
+fn ops<P: FfiPermissions + 'static>(
+ ext: &mut ExtensionBuilder,
+ unstable: bool,
+) -> &mut ExtensionBuilder {
+ ext
.ops(vec![
op_ffi_load::decl::<P>(),
op_ffi_get_static::decl(),
@@ -151,5 +158,18 @@ pub fn init<P: FfiPermissions + 'static>(unstable: bool) -> Extension {
async_work_sender,
});
})
+}
+
+pub fn init_ops_and_esm<P: FfiPermissions + 'static>(
+ unstable: bool,
+) -> Extension {
+ ops::<P>(&mut ext(), unstable)
+ .esm(include_js_files!("00_ffi.js",))
+ .build()
+}
+
+pub fn init_ops<P: FfiPermissions + 'static>(unstable: bool) -> Extension {
+ ops::<P>(&mut ext(), unstable)
+ .esm(include_js_files!("00_ffi.js",))
.build()
}