1
0

5 Commits

Author SHA1 Message Date
307a93d86c 3.0.0-11 2023-02-21 15:45:20 +01:00
3a955af1bc fix cors edge case 2023-02-21 15:45:12 +01:00
db22422968 add arrayBuffer, text, formData, blob 2023-02-21 15:44:49 +01:00
0a73e4c32e 3.0.0-10 2023-02-05 02:11:19 +01:00
8bd8e50ee5 update 2023-02-05 02:11:09 +01:00
3 changed files with 12 additions and 11 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@tsndr/cloudflare-worker-router",
"version": "3.0.0-9",
"version": "3.0.0-11",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@tsndr/cloudflare-worker-router",
"version": "3.0.0-9",
"version": "3.0.0-11",
"license": "MIT",
"devDependencies": {
"@cloudflare/workers-types": "^4.20230115.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@tsndr/cloudflare-worker-router",
"version": "3.0.0-9",
"version": "3.0.0-11",
"description": "",
"main": "index.js",
"types": "index.d.ts",

View File

@@ -36,7 +36,7 @@ export type RouterContext<TEnv = any, TExt = any> = {
* @property {RouterRequestParams} params Object containing all parameters defined in the url string
* @property {RouterRequestQuery} query Object containing all query parameters
* @property {Headers} headers Request headers object
* @property {string | any} body Only available if method is `POST`, `PUT`, `PATCH` or `DELETE`. Contains either the received body string or a parsed object if valid JSON was sent.
* @property {Request} raw Raw Request Object
* @property {IncomingRequestCfProperties} [cf] object containing custom Cloudflare properties. (https://developers.cloudflare.com/workers/examples/accessing-the-cloudflare-object)
*/
export type RouterRequest<TExt> = {
@@ -45,7 +45,6 @@ export type RouterRequest<TExt> = {
params: RouterRequestParams
query: RouterRequestQuery
headers: Headers
body: string | any
raw: Request
arrayBuffer(): Promise<ArrayBuffer>
text(): Promise<string>
@@ -393,11 +392,11 @@ export class Router<TEnv = any, TExt = any> {
raw: request,
params: {},
query: {},
arrayBuffer: request.arrayBuffer,
text: request.text,
json: request.json,
formData: request.formData,
blob: request.blob,
arrayBuffer: (): Promise<ArrayBuffer> => request.arrayBuffer(),
text: (): Promise<string> => request.text(),
json: <T>(): Promise<T> => request.json<T>(),
formData: (): Promise<FormData> => request.formData(),
blob: (): Promise<Blob> => request.blob(),
bearer: () => request.headers.get('Authorization')?.replace(/^(B|b)earer /, '').trim() ?? '',
} as RouterRequest<TExt>
@@ -430,8 +429,10 @@ export class Router<TEnv = any, TExt = any> {
if (!response)
return new Response(this.debugMode ? 'Handler did not return a Response!' : null, { status: 404 })
if (this.corsEnabled)
if (this.corsEnabled) {
response = new Response(response.body, response)
this.setCorsHeaders(response.headers)
}
return response
}