diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-02-14 15:53:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-14 15:53:00 +0100 |
commit | b3c85c3548ac3c56f0cf0f3ace36a6f3de3bf823 (patch) | |
tree | ccf6b840b1ae00f6e5ee39655308bc40933d0cb4 | |
parent | 201737c518237b271b5bbbd8e2b1fd19ce51fdd9 (diff) |
feat(node): stabilize Node-API (#17553)
This commit stabilizes Node-API, the "--unstable" flag is no longer
required to load native extensions. "--allow-ffi" permission is still
required to load them.
-rw-r--r-- | cli/build.rs | 2 | ||||
-rw-r--r-- | ext/napi/lib.rs | 15 | ||||
-rw-r--r-- | runtime/build.rs | 2 | ||||
-rw-r--r-- | runtime/web_worker.rs | 2 | ||||
-rw-r--r-- | runtime/worker.rs | 2 | ||||
-rw-r--r-- | test_napi/tests/napi_tests.rs | 1 |
6 files changed, 5 insertions, 19 deletions
diff --git a/cli/build.rs b/cli/build.rs index d71b92e1a..867f3fb98 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -348,7 +348,7 @@ fn create_cli_snapshot(snapshot_path: PathBuf) { None, false, // No --unstable. None, ), - deno_napi::init::<PermissionsContainer>(false), + deno_napi::init::<PermissionsContainer>(), deno_http::init(), deno_flash::init::<PermissionsContainer>(false), // No --unstable ]; diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index 59a07136d..628ecd5a2 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -514,7 +514,7 @@ impl Env { } } -pub fn init<P: NapiPermissions + 'static>(unstable: bool) -> Extension { +pub fn init<P: NapiPermissions + 'static>() -> Extension { Extension::builder(env!("CARGO_PKG_NAME")) .ops(vec![op_napi_open::decl::<P>()]) .event_loop_middleware(|op_state_rc, cx| { @@ -578,7 +578,6 @@ pub fn init<P: NapiPermissions + 'static>(unstable: bool) -> Extension { env_cleanup_hooks: Rc::new(RefCell::new(vec![])), tsfn_ref_counters: Arc::new(Mutex::new(vec![])), }); - state.put(Unstable(unstable)); Ok(()) }) .build() @@ -589,17 +588,6 @@ pub trait NapiPermissions { -> std::result::Result<(), AnyError>; } -pub struct Unstable(pub bool); - -fn check_unstable(state: &OpState) { - let unstable = state.borrow::<Unstable>(); - - if !unstable.0 { - eprintln!("Unstable API 'node-api'. The --unstable flag must be provided."); - std::process::exit(70); - } -} - #[op(v8)] fn op_napi_open<NP, 'scope>( scope: &mut v8::HandleScope<'scope>, @@ -610,7 +598,6 @@ fn op_napi_open<NP, 'scope>( where NP: NapiPermissions + 'static, { - check_unstable(op_state); let permissions = op_state.borrow_mut::<NP>(); permissions.check(Some(&PathBuf::from(&path)))?; diff --git a/runtime/build.rs b/runtime/build.rs index d3f92cf6a..e70e8fe5d 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -231,7 +231,7 @@ mod not_docs { None, false, // No --unstable. None, ), - deno_napi::init::<Permissions>(false), + deno_napi::init::<Permissions>(), deno_http::init(), deno_flash::init::<Permissions>(false), // No --unstable runtime_extension, diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index d95b28410..052d95451 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -434,7 +434,7 @@ impl WebWorker { unstable, options.unsafely_ignore_certificate_errors.clone(), ), - deno_napi::init::<PermissionsContainer>(unstable), + deno_napi::init::<PermissionsContainer>(), deno_node::init::<PermissionsContainer>(options.npm_resolver), ops::os::init_for_worker(), ops::permissions::init(), diff --git a/runtime/worker.rs b/runtime/worker.rs index 5c076a2a5..bffa91265 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -266,7 +266,7 @@ impl MainWorker { unstable, options.unsafely_ignore_certificate_errors.clone(), ), - deno_napi::init::<PermissionsContainer>(unstable), + deno_napi::init::<PermissionsContainer>(), deno_node::init::<PermissionsContainer>(options.npm_resolver), ops::os::init(exit_code.clone()), ops::permissions::init(), diff --git a/test_napi/tests/napi_tests.rs b/test_napi/tests/napi_tests.rs index cba96079e..747f6aa27 100644 --- a/test_napi/tests/napi_tests.rs +++ b/test_napi/tests/napi_tests.rs @@ -31,7 +31,6 @@ fn napi_tests() { .arg("--allow-env") .arg("--allow-ffi") .arg("--allow-run") - .arg("--unstable") .spawn() .unwrap() .wait_with_output() |