From 6e6a771c1a7ad061d71593932e9aef768c8132a2 Mon Sep 17 00:00:00 2001 From: Tobias Schneider Date: Fri, 18 Mar 2022 17:57:35 +0100 Subject: [PATCH] Add env and ctx to router.handle() --- index.d.ts | 24 ++++++++++++++++++++---- index.js | 15 ++++++++++++--- package.json | 2 +- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/index.d.ts b/index.d.ts index eeaa2bb..916ee3c 100644 --- a/index.d.ts +++ b/index.d.ts @@ -265,16 +265,32 @@ type RouterRequest = { * HTTP request method */ method: string + /** + * Object containing request headers + */ + headers: Headers + /** + * URL String + */ + url: string + /** + * Environment object + */ + env: any + /** + * Context object + */ + ctx: any + /** + * Cloudflare object + */ + cf: any /** * Object containing all parameters defined in the url string */ params: { [key: string]: string } - /** - * Object containing request headers - */ - headers: Headers /** * Only available if method is `POST`, `PUT` or `PATCH`. Contains either the received body string or a parsed object if valid JSON was sent. */ diff --git a/index.js b/index.js index b9e6815..d82ec81 100644 --- a/index.js +++ b/index.js @@ -294,16 +294,25 @@ class Router { * Handle requests * * @param {Request} request + * @param {any} env + * @param {any} ctx * @returns {Response} */ - async handle(request) { + async handle(request, env, ctx) { try { if (request instanceof Event) { request = request.request console.warn("Warning: Using `event` on `router.handle()` is deprecated and might go away in future versions, please use `event.request` instead.") } - const req = { headers: request.headers, method: request.method, url: request.url, cf: request.cf || {} } - req.params = [] + const req = { + method: request.method, + headers: request.headers, + url: request.url, + env: env || {}, + ctx: ctx || {}, + cf: request.cf || {}, + params: [] + } if (req.method === 'OPTIONS' && Object.keys(this.corsConfig).length) { return new Response(null, { headers: { diff --git a/package.json b/package.json index e507265..1f48a58 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tsndr/cloudflare-worker-router", - "version": "1.1.11", + "version": "1.2.0", "description": "", "main": "index.js", "scripts": {},