1
0

6 Commits

Author SHA1 Message Date
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) - [Features](#features)
- [Usage](#usage) - [Usage](#usage)
- [Reference](#reference) - [Reference](#reference)
- [Setup](#setup) - [Getting started](#getting-started)
## Features ## Features
@@ -33,7 +33,7 @@ Migrating from `v2.x.x`, check out the [Migration Guide](MIGRATION.md).
```typescript ```typescript
import { Router } from '@tsndr/cloudflare-worker-router' 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/ // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/
// MY_KV_NAMESPACE: KVNamespace // MY_KV_NAMESPACE: KVNamespace
// //
@@ -264,7 +264,7 @@ Key | Type | Description
`query` | `object` | Object containing all query parameters `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. 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 ```typescript
import { Router } from '@tsndr/cloudflare-worker-router' 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/ // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/
// MY_KV_NAMESPACE: KVNamespace // MY_KV_NAMESPACE: KVNamespace
// //
@@ -302,9 +302,9 @@ const router = new Router<Env>()
/// Example Route /// Example Route
// //
// router.get(/'hi', async () => { // router.get('/hi', async () => {
// return new Response('Hello World') // return new Response('Hello World')
//} //})
/// Example Route for splitting into multiple files /// Example Route for splitting into multiple files
@@ -338,9 +338,9 @@ const router = new Router()
/// Example Route /// Example Route
// //
// router.get(/'hi', async () => { // router.get('/hi', async () => {
// return new Response('Hello World') // return new Response('Hello World')
//} //})
/// Example Route for splitting into multiple files /// Example Route for splitting into multiple files
// //

32
package-lock.json generated
View File

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

View File

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

View File

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