refactor(ops): return BadResource errors in ResourceTable calls (#11710)

* refactor(ops): return BadResource errors in ResourceTable calls

Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ...
This commit is contained in:
Aaron O'Mullan 2021-08-15 13:29:19 +02:00 committed by GitHub
parent 18ff6bb053
commit 2ca454b402
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 337 additions and 551 deletions

View file

@ -1,7 +1,6 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
use data_url::DataUrl;
use deno_core::error::bad_resource_id;
use deno_core::error::null_opbuf;
use deno_core::error::type_error;
use deno_core::error::AnyError;
@ -163,10 +162,7 @@ where
FP: FetchPermissions + 'static,
{
let client = if let Some(rid) = args.client_rid {
let r = state
.resource_table
.get::<HttpClientResource>(rid)
.ok_or_else(bad_resource_id)?;
let r = state.resource_table.get::<HttpClientResource>(rid)?;
r.client.clone()
} else {
let client = state.borrow::<reqwest::Client>();
@ -345,8 +341,7 @@ pub async fn op_fetch_send(
let request = state
.borrow_mut()
.resource_table
.take::<FetchRequestResource>(rid)
.ok_or_else(bad_resource_id)?;
.take::<FetchRequestResource>(rid)?;
let request = Rc::try_unwrap(request)
.ok()
@ -402,8 +397,7 @@ pub async fn op_fetch_request_write(
let resource = state
.borrow()
.resource_table
.get::<FetchRequestBodyResource>(rid)
.ok_or_else(bad_resource_id)?;
.get::<FetchRequestBodyResource>(rid)?;
let body = RcRef::map(&resource, |r| &r.body).borrow_mut().await;
let cancel = RcRef::map(resource, |r| &r.cancel);
body.send(Ok(buf)).or_cancel(cancel).await?.map_err(|_| {
@ -423,8 +417,7 @@ pub async fn op_fetch_response_read(
let resource = state
.borrow()
.resource_table
.get::<FetchResponseBodyResource>(rid)
.ok_or_else(bad_resource_id)?;
.get::<FetchResponseBodyResource>(rid)?;
let mut reader = RcRef::map(&resource, |r| &r.reader).borrow_mut().await;
let cancel = RcRef::map(resource, |r| &r.cancel);
let mut buf = data.clone();