1
0

8 Commits

Author SHA1 Message Date
c2b6189a86 3.0.0-8 2023-02-02 20:53:11 +01:00
33cafbf17c update replace to be case insensitive 2023-02-02 20:53:02 +01:00
1e78778ba0 3.0.0-7 2023-02-02 20:38:45 +01:00
b0d05656bb add bearer helper function 2023-02-02 20:37:58 +01:00
d4ba12a517 update readme 2023-02-02 19:03:18 +01:00
b48e5c2333 clean up 2023-02-02 18:51:12 +01:00
bf41e2c193 update readme 2023-02-02 18:48:20 +01:00
5342cfd310 update dev dependencies 2023-02-02 18:43:36 +01:00
4 changed files with 30 additions and 28 deletions

View File

@@ -12,7 +12,7 @@ I worked a lot with [Express.js](https://expressjs.com/) in the past and really
- [Features](#features)
- [Usage](#usage)
- [Reference](#reference)
- [Setup](#setup)
- [Getting started](#getting-started)
## Features
@@ -33,7 +33,7 @@ Migrating from `v2.x.x`, check out the [Migration Guide](MIGRATION.md).
```typescript
import { Router } from '@tsndr/cloudflare-worker-router'
export interface Env {
export type Env = {
// Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/
// MY_KV_NAMESPACE: KVNamespace
//
@@ -264,7 +264,7 @@ Key | Type | Description
`query` | `object` | Object containing all query parameters
## Setup
## Getting started
Please follow Cloudflare's [Get started guide](https://developers.cloudflare.com/workers/get-started/guide/) to install wrangler.
@@ -287,7 +287,7 @@ npm i -D @tsndr/cloudflare-worker-router
```typescript
import { Router } from '@tsndr/cloudflare-worker-router'
export interface Env {
export type Env = {
// Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/
// MY_KV_NAMESPACE: KVNamespace
//
@@ -302,9 +302,9 @@ const router = new Router<Env>()
/// Example Route
//
// router.get(/'hi', async () => {
// router.get('/hi', async () => {
// return new Response('Hello World')
//}
//})
/// Example Route for splitting into multiple files
@@ -338,9 +338,9 @@ const router = new Router()
/// Example Route
//
// router.get(/'hi', async () => {
// router.get('/hi', async () => {
// return new Response('Hello World')
//}
//})
/// Example Route for splitting into multiple files
//

32
package-lock.json generated
View File

@@ -1,28 +1,28 @@
{
"name": "@tsndr/cloudflare-worker-router",
"version": "3.0.0-6",
"version": "3.0.0-8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@tsndr/cloudflare-worker-router",
"version": "3.0.0-6",
"version": "3.0.0-8",
"license": "MIT",
"devDependencies": {
"@cloudflare/workers-types": "^3.13.0",
"typescript": "^4.7.4"
"@cloudflare/workers-types": "^4.20230115.0",
"typescript": "^4.9.5"
}
},
"node_modules/@cloudflare/workers-types": {
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.13.0.tgz",
"integrity": "sha512-oyhzfYlWBLgd9odJ/WHcsD/8B+IaAjSD+OcPEGLzX5kGRONjwcW3NY0WQfsVIhQzZ6AbPzjwkmj4D2VFwU1xRQ==",
"version": "4.20230115.0",
"resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230115.0.tgz",
"integrity": "sha512-GPJEiO8AFN+jUpA+DHJ1qdVmk4s/hq8JYKjOV/+U7avGquQbVnj905+Kg6uAEfrq16muwmRKl+XJGqsvlBlDNg==",
"dev": true
},
"node_modules/typescript": {
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -35,15 +35,15 @@
},
"dependencies": {
"@cloudflare/workers-types": {
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.13.0.tgz",
"integrity": "sha512-oyhzfYlWBLgd9odJ/WHcsD/8B+IaAjSD+OcPEGLzX5kGRONjwcW3NY0WQfsVIhQzZ6AbPzjwkmj4D2VFwU1xRQ==",
"version": "4.20230115.0",
"resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230115.0.tgz",
"integrity": "sha512-GPJEiO8AFN+jUpA+DHJ1qdVmk4s/hq8JYKjOV/+U7avGquQbVnj905+Kg6uAEfrq16muwmRKl+XJGqsvlBlDNg==",
"dev": true
},
"typescript": {
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@tsndr/cloudflare-worker-router",
"version": "3.0.0-6",
"version": "3.0.0-8",
"description": "",
"main": "index.js",
"types": "index.d.ts",
@@ -31,7 +31,7 @@
},
"homepage": "https://github.com/tsndr/cloudflare-worker-router#readme",
"devDependencies": {
"@cloudflare/workers-types": "^3.13.0",
"typescript": "^4.7.4"
"@cloudflare/workers-types": "^4.20230115.0",
"typescript": "^4.9.5"
}
}

View File

@@ -48,6 +48,7 @@ export type RouterRequest<TExt> = {
body: string | any
raw: Request
cf?: IncomingRequestCfProperties
bearer: () => string
} & TExt
/**
@@ -387,7 +388,8 @@ export class Router<TEnv = any, TExt = any> {
raw: request,
params: {},
query: {},
body: ''
body: '',
bearer: () => request.headers.get('Authorization')?.replace(/^(B|b)earer /, '').trim() ?? '',
} as RouterRequest<TExt>
const route = this.getRoute(req)