Skip to content

Commit adf1dc3

Browse files
Merge master into feature/sdkv3
2 parents 2cabd3e + efeba57 commit adf1dc3

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

packages/core/src/shared/request.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,11 @@ class FetchRequest {
9999
}
100100

101101
async #throwIfBadResponse(request: RequestParams, response: Response, url: string) {
102-
if (response.ok) {
102+
/**
103+
* response.ok only returns true for 200-299.
104+
* We need to explicitly allow 304 since it means the cached version is still valid
105+
*/
106+
if (response.ok || response.status === 304) {
103107
return
104108
}
105109

packages/core/src/shared/resourcefetcher/httpResourceFetcher.ts

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ export class HttpResourceFetcher implements ResourceFetcher<Response> {
3939
*/
4040
public get(): Promise<Response | undefined> {
4141
this.logger.verbose(`downloading: ${this.logText()}`)
42-
return withRetries(() => this.downloadRequest(), {
43-
maxRetries: this.params.retries ?? 1,
44-
})
42+
return this.downloadRequest()
4543
}
4644

4745
/**
@@ -99,16 +97,23 @@ export class HttpResourceFetcher implements ResourceFetcher<Response> {
9997
}
10098

10199
private async getResponseFromGetRequest(timeout?: Timeout, headers?: RequestHeaders): Promise<Response> {
102-
const req = request.fetch('GET', this.url, {
103-
headers: this.buildRequestHeaders(headers),
104-
})
105-
106-
const cancelListener = timeout?.token.onCancellationRequested((event) => {
107-
this.logCancellation(event)
108-
req.cancel()
109-
})
110-
111-
return req.response.finally(() => cancelListener?.dispose())
100+
return withRetries(
101+
() => {
102+
const req = request.fetch('GET', this.url, {
103+
headers: this.buildRequestHeaders(headers),
104+
})
105+
106+
const cancelListener = timeout?.token.onCancellationRequested((event) => {
107+
this.logCancellation(event)
108+
req.cancel()
109+
})
110+
111+
return req.response.finally(() => cancelListener?.dispose())
112+
},
113+
{
114+
maxRetries: this.params.retries ?? 1,
115+
}
116+
)
112117
}
113118

114119
private buildRequestHeaders(requestHeaders?: RequestHeaders): Headers {

0 commit comments

Comments
 (0)