1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00

fix: don't panic when cache is not available (#24175)

Fixes #22144
This commit is contained in:
Luca Casonato 2024-06-13 02:29:02 +03:00 committed by Nathan Whitaker
parent 4af7fb8b81
commit d87bde0dc8
No known key found for this signature in database

6
ext/cache/lib.rs vendored
View file

@ -6,6 +6,7 @@ use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
use async_trait::async_trait; use async_trait::async_trait;
use deno_core::error::type_error;
use deno_core::error::AnyError; use deno_core::error::AnyError;
use deno_core::op2; use deno_core::op2;
use deno_core::serde::Deserialize; use deno_core::serde::Deserialize;
@ -205,11 +206,12 @@ where
let mut state = state.borrow_mut(); let mut state = state.borrow_mut();
if let Some(cache) = state.try_borrow::<CA>() { if let Some(cache) = state.try_borrow::<CA>() {
Ok(cache.clone()) Ok(cache.clone())
} else { } else if let Some(create_cache) = state.try_borrow::<CreateCache<CA>>() {
let create_cache = state.borrow::<CreateCache<CA>>().clone();
let cache = create_cache.0(); let cache = create_cache.0();
state.put(cache); state.put(cache);
Ok(state.borrow::<CA>().clone()) Ok(state.borrow::<CA>().clone())
} else {
Err(type_error("CacheStorage is not available in this context."))
} }
} }