diff options
Diffstat (limited to 'ext/net/lib.rs')
-rw-r--r-- | ext/net/lib.rs | 39 |
1 files changed, 4 insertions, 35 deletions
diff --git a/ext/net/lib.rs b/ext/net/lib.rs index 0e3778d5a..1fc7e3420 100644 --- a/ext/net/lib.rs +++ b/ext/net/lib.rs @@ -12,10 +12,8 @@ use deno_core::error::AnyError; use deno_core::OpState; use deno_tls::rustls::RootCertStore; use deno_tls::RootCertStoreProvider; -use std::cell::RefCell; use std::path::Path; use std::path::PathBuf; -use std::rc::Rc; use std::sync::Arc; pub trait NetPermissions { @@ -29,38 +27,11 @@ pub trait NetPermissions { -> Result<(), AnyError>; } -/// `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) +fn check_unstable(state: &OpState, api_name: &str) { + state + .feature_checker + .check_legacy_unstable_or_exit(api_name); } pub fn get_declaration() -> PathBuf { @@ -125,14 +96,12 @@ deno_core::extension!(deno_net, esm = [ "01_net.js", "02_tls.js" ], options = { root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>, - unstable: bool, unsafely_ignore_certificate_errors: Option<Vec<String>>, }, state = |state, options| { state.put(DefaultTlsOptions { root_cert_store_provider: options.root_cert_store_provider, }); - state.put(UnstableChecker { unstable: options.unstable }); state.put(UnsafelyIgnoreCertificateErrors( options.unsafely_ignore_certificate_errors, )); |