feat: add support for fetch API Request
interface
#68
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the
basic-auth
package supports parsingAuthorization
headers from Node.jsIncomingMessage
objects. However, with the increasing usage of the Fetch API in modern applications (both in server-side environments like Deno, Cloudflare Workers, and Bun, as well as in edge functions), it would be beneficial to extend support to the Fetch APIRequest
interface.Use Case
In environments like Cloudflare Workers, Deno, and other serverless platforms, request objects conform to the Fetch API standard rather than the Node.js
IncomingMessage
format. SupportingRequest
objects would enable seamless authentication handling in these environments without the need for manual header extraction.Proposed Solution
Modify
basic-auth
to accept bothIncomingMessage
and Fetch APIRequest
objects. The implementation could check for the presence ofreq.headers.get('authorization')
in addition toreq.headers['authorization']
(Node.js style).Alternative Workarounds
Currently, users working with Fetch API-based environments must manually extract the
Authorization
header before passing it tobasic-auth
, which adds extra steps and reduces convenience:Adding native support would improve DX (developer experience) and make
basic-auth
more flexible for modern runtimes.