Skip to content

Commit a6ef17d

Browse files
committed
add on_before_request
1 parent c5da9d2 commit a6ef17d

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

plugins/updater/src/updater.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ impl RemoteRelease {
9393
}
9494

9595
pub type OnBeforeExit = Arc<dyn Fn() + Send + Sync + 'static>;
96+
pub type OnBeforeRequest = Arc<dyn Fn(ClientBuilder) -> ClientBuilder + Send + Sync + 'static>;
9697
pub type VersionComparator = Arc<dyn Fn(Version, RemoteRelease) -> bool + Send + Sync>;
9798
type MainThreadClosure = Box<dyn FnOnce() + Send + Sync + 'static>;
9899
type RunOnMainThread =
@@ -114,6 +115,7 @@ pub struct UpdaterBuilder {
114115
installer_args: Vec<OsString>,
115116
current_exe_args: Vec<OsString>,
116117
on_before_exit: Option<OnBeforeExit>,
118+
on_before_request: Option<OnBeforeRequest>,
117119
}
118120

119121
impl UpdaterBuilder {
@@ -140,6 +142,7 @@ impl UpdaterBuilder {
140142
timeout: None,
141143
proxy: None,
142144
on_before_exit: None,
145+
on_before_request: None,
143146
}
144147
}
145148

@@ -239,6 +242,11 @@ impl UpdaterBuilder {
239242
self
240243
}
241244

245+
pub fn on_before_request<F: Fn(ClientBuilder) -> ClientBuilder + Send + Sync + 'static>(mut self, f: F) -> Self {
246+
self.on_before_request.replace(Arc::new(f));
247+
self
248+
}
249+
242250
pub fn build(self) -> Result<Updater> {
243251
let endpoints = self
244252
.endpoints
@@ -282,6 +290,7 @@ impl UpdaterBuilder {
282290
headers: self.headers,
283291
extract_path,
284292
on_before_exit: self.on_before_exit,
293+
on_before_request: self.on_before_request,
285294
})
286295
}
287296
}
@@ -316,6 +325,7 @@ pub struct Updater {
316325
headers: HeaderMap,
317326
extract_path: PathBuf,
318327
on_before_exit: Option<OnBeforeExit>,
328+
on_before_request: Option<OnBeforeRequest>,
319329
#[allow(unused)]
320330
installer_args: Vec<OsString>,
321331
#[allow(unused)]
@@ -376,6 +386,11 @@ impl Updater {
376386
let proxy = reqwest::Proxy::all(proxy.as_str())?;
377387
request = request.proxy(proxy);
378388
}
389+
390+
if let Some(ref on_before_request) = self.on_before_request {
391+
request = on_before_request(request);
392+
}
393+
379394
let response = request
380395
.build()?
381396
.get(url)

0 commit comments

Comments
 (0)