@aseifu/cloudflare-router
Advanced tools
Comparing version 1.0.2 to 1.0.3
23
index.ts
@@ -1,3 +0,3 @@ | ||
import { Request as CfRequest, Response as CfResponse, ResponseInit } from '@cloudflare/workers-types'; | ||
interface Params { | ||
@@ -7,13 +7,13 @@ [key: string]: string; | ||
interface Request extends CfRequest { | ||
interface CustomRequest extends Request { | ||
params?: Params; | ||
} | ||
interface Response { | ||
interface CustomResponse { | ||
send: (body: string, resInit: ResponseInit) => void; | ||
} | ||
type RouteHandler = (req: Request, res: Response) => void; | ||
type RouteHandler = (req: CustomRequest, res: CustomResponse) => void; | ||
const createResponse = (body: string, resInit: ResponseInit): CfResponse => new CfResponse(body, resInit); | ||
const createResponse = (body: string, resInit: ResponseInit): Response => new Response(body, resInit); | ||
@@ -38,4 +38,4 @@ const parseRoute = (route: string, url: string): { matched: boolean, params?: Params } => { | ||
export const cloudFlare = (request: Request) => { | ||
let response: CfResponse | null = null; | ||
const res: Response = { | ||
let response: Response | null = null; | ||
const res: CustomResponse = { | ||
send: (body: string, resInit: ResponseInit) => { response = createResponse(body, resInit); } | ||
@@ -71,2 +71,3 @@ }; | ||
const routeHandlers = routes[method]; | ||
@@ -79,7 +80,7 @@ if (!routeHandlers) { | ||
const { matched: isMatched, params } = parseRoute(route, url); | ||
if (isMatched) { | ||
request.params = params; | ||
let customRequest: CustomRequest= request; | ||
customRequest.params = params; | ||
matched = true; | ||
callback(request, res); | ||
callback(customRequest, res); | ||
return; | ||
@@ -90,3 +91,3 @@ } | ||
const getResponse = (): CfResponse => { | ||
const getResponse = (): Response => { | ||
handleRequest(); | ||
@@ -93,0 +94,0 @@ return response || createResponse('Not found', { status: 404 }); |
{ | ||
"name": "@aseifu/cloudflare-router", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"description": "A lightweight routing utility for Cloudflare Workers, enabling easy management of HTTP routes with support for dynamic URL parameters.", | ||
@@ -5,0 +5,0 @@ "main": "index.ts", |
6591