Skip to content

Commit

Permalink
refactor: create Request instances before passing them to fetch
Browse files Browse the repository at this point in the history
  • Loading branch information
panva committed Nov 26, 2023
1 parent 1a3dd65 commit 02ab110
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -818,12 +818,14 @@ export async function discoveryRequest(
const headers = prepareHeaders(options?.headers)
headers.set('accept', 'application/json')

return fetch(url.href, {
const request = new Request(url.href, {
headers,
method: 'GET',
redirect: 'manual',
signal: options?.signal ? signal(options.signal) : null,
}).then(processDpopNonce)
})

return fetch(request).then(processDpopNonce)
}

function validateString(input: unknown): input is string {
Expand Down Expand Up @@ -1653,13 +1655,15 @@ export async function protectedResourceRequest(
headers.set('authorization', `DPoP ${accessToken}`)
}

return fetch(url.href, {
const request = new Request(url.href, {
body,
headers,
method,
redirect: 'manual',
signal: options?.signal ? signal(options.signal) : null,
}).then(processDpopNonce)
})

return fetch(request).then(processDpopNonce)
}

export interface UserInfoRequestOptions extends HttpRequestOptions, DPoPRequestOptions {}
Expand Down Expand Up @@ -1969,13 +1973,15 @@ async function authenticatedRequest(
await clientAuthentication(as, client, body, headers, options?.clientPrivateKey)
headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')

return fetch(url.href, {
const request = new Request(url.href, {
body,
headers,
method,
redirect: 'manual',
signal: options?.signal ? signal(options.signal) : null,
}).then(processDpopNonce)
})

return fetch(request).then(processDpopNonce)
}

export interface TokenEndpointRequestOptions
Expand Down Expand Up @@ -2857,12 +2863,14 @@ async function jwksRequest(
headers.set('accept', 'application/json')
headers.append('accept', 'application/jwk-set+json')

return fetch(url.href, {
const request = new Request(url.href, {
headers,
method: 'GET',
redirect: 'manual',
signal: options?.signal ? signal(options.signal) : null,
}).then(processDpopNonce)
})

return fetch(request).then(processDpopNonce)
}

interface JsonWebKeySet {
Expand Down

0 comments on commit 02ab110

Please sign in to comment.