mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 02:48:24 +00:00
perf(core) Reduce copying and cloning in extension initialization (#18252)
Follow-up to #18210: * we are passing the generated `cfg` object into the state function rather than passing individual config fields * reduce cloning dramatically by making the state_fn `FnOnce` * `take` for `ExtensionBuilder` to avoid more unnecessary copies * renamed `config` to `options`
This commit is contained in:
parent
e55b448730
commit
3487fde236
27 changed files with 206 additions and 174 deletions
|
@ -107,19 +107,19 @@ deno_core::extension!(deno_fetch,
|
|||
"23_response.js",
|
||||
"26_fetch.js"
|
||||
],
|
||||
config = {
|
||||
options = {
|
||||
options: Options,
|
||||
},
|
||||
state = |state, options| {
|
||||
state.put::<Options>(options.clone());
|
||||
state.put::<Options>(options.options.clone());
|
||||
state.put::<reqwest::Client>({
|
||||
create_http_client(
|
||||
options.user_agent,
|
||||
options.root_cert_store,
|
||||
options.options.user_agent,
|
||||
options.options.root_cert_store,
|
||||
vec![],
|
||||
options.proxy,
|
||||
options.unsafely_ignore_certificate_errors,
|
||||
options.client_cert_chain_and_key
|
||||
options.options.proxy,
|
||||
options.options.unsafely_ignore_certificate_errors,
|
||||
options.options.client_cert_chain_and_key
|
||||
)
|
||||
.unwrap()
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue