diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-10-04 21:42:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-04 21:42:17 +0200 |
commit | a5568066b3d979111134029f9e4f0c1b462b948e (patch) | |
tree | 14c4233cc01d55eda7f608b5194f6b088264b52e /runtime/ops/mod.rs | |
parent | 9a46a824bd897e240af8a14f9d950ab6d95f42a5 (diff) |
refactor: use deno_core::FeatureChecker for unstable checks (#20765)
Diffstat (limited to 'runtime/ops/mod.rs')
-rw-r--r-- | runtime/ops/mod.rs | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/runtime/ops/mod.rs b/runtime/ops/mod.rs index 5cb7dcbff..cdafd61ec 100644 --- a/runtime/ops/mod.rs +++ b/runtime/ops/mod.rs @@ -13,41 +13,12 @@ pub mod web_worker; pub mod worker_host; use deno_core::OpState; -use std::cell::RefCell; -use std::rc::Rc; -/// `UnstableChecker` is a struct so it can be placed inside `GothamState`; -/// using type alias for a bool could work, but there's a high chance -/// that there might be another type alias pointing to a bool, which -/// would override previously used alias. -pub struct UnstableChecker { - pub unstable: bool, -} - -impl UnstableChecker { - /// Quits the process if the --unstable flag was not provided. - /// - /// This is intentionally a non-recoverable check so that people cannot probe - /// for unstable APIs from stable programs. - // NOTE(bartlomieju): keep in sync with `cli/program_state.rs` - pub fn check_unstable(&self, api_name: &str) { - if !self.unstable { - eprintln!( - "Unstable API '{api_name}'. The --unstable flag must be provided." - ); - std::process::exit(70); - } - } -} /// Helper for checking unstable features. Used for sync ops. pub fn check_unstable(state: &OpState, api_name: &str) { - state.borrow::<UnstableChecker>().check_unstable(api_name) -} - -/// Helper for checking unstable features. Used for async ops. -pub fn check_unstable2(state: &Rc<RefCell<OpState>>, api_name: &str) { - let state = state.borrow(); - state.borrow::<UnstableChecker>().check_unstable(api_name) + state + .feature_checker + .check_legacy_unstable_or_exit(api_name); } pub struct TestingFeaturesEnabled(pub bool); |