updates for 2023
parent
cbd7e7ef21
commit
3a831d1026
File diff suppressed because it is too large
Load Diff
@ -1,2 +0,0 @@
|
|||||||
node_modules
|
|
||||||
worker
|
|
@ -1,80 +0,0 @@
|
|||||||
import { getAssetFromKV, mapRequestToAsset } from '@cloudflare/kv-asset-handler'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The DEBUG flag will do two things that help during development:
|
|
||||||
* 1. we will skip caching on the edge, which makes it easier to
|
|
||||||
* debug.
|
|
||||||
* 2. we will return an error message on exception in your Response rather
|
|
||||||
* than the default 404.html page.
|
|
||||||
*/
|
|
||||||
const DEBUG = false
|
|
||||||
|
|
||||||
addEventListener('fetch', event => {
|
|
||||||
try {
|
|
||||||
event.respondWith(handleEvent(event))
|
|
||||||
} catch (e) {
|
|
||||||
if (DEBUG) {
|
|
||||||
return event.respondWith(
|
|
||||||
new Response(e.message || e.toString(), {
|
|
||||||
status: 500,
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
event.respondWith(new Response('Internal Error', { status: 500 }))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
async function handleEvent(event) {
|
|
||||||
const url = new URL(event.request.url)
|
|
||||||
let options = {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* You can add custom logic to how we fetch your assets
|
|
||||||
* by configuring the function `mapRequestToAsset`
|
|
||||||
*/
|
|
||||||
// options.mapRequestToAsset = handlePrefix(/^\/docs/)
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (DEBUG) {
|
|
||||||
// customize caching
|
|
||||||
options.cacheControl = {
|
|
||||||
bypassCache: true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return await getAssetFromKV(event, options)
|
|
||||||
} catch (e) {
|
|
||||||
// if an error is thrown try to serve the asset at 404.html
|
|
||||||
if (!DEBUG) {
|
|
||||||
try {
|
|
||||||
let notFoundResponse = await getAssetFromKV(event, {
|
|
||||||
mapRequestToAsset: req => new Request(`${new URL(req.url).origin}/index.html`, req),
|
|
||||||
})
|
|
||||||
|
|
||||||
return new Response(notFoundResponse.body, { ...notFoundResponse, status: 404 })
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Response(e.message || e.toString(), { status: 500 })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Here's one example of how to modify a request to
|
|
||||||
* remove a specific prefix, in this case `/docs` from
|
|
||||||
* the url. This can be useful if you are deploying to a
|
|
||||||
* route on a zone, or if you only want your static content
|
|
||||||
* to exist at a specific path.
|
|
||||||
*/
|
|
||||||
function handlePrefix(prefix) {
|
|
||||||
return request => {
|
|
||||||
// compute the default (e.g. / -> index.html)
|
|
||||||
let defaultAssetKey = mapRequestToAsset(request)
|
|
||||||
let url = new URL(defaultAssetKey.url)
|
|
||||||
|
|
||||||
// strip the prefix from the path for lookup
|
|
||||||
url.pathname = url.pathname.replace(prefix, '/')
|
|
||||||
|
|
||||||
// inherit all other props from the default request
|
|
||||||
return new Request(url.toString(), defaultAssetKey)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "worker",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 1,
|
|
||||||
"requires": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@cloudflare/kv-asset-handler": {
|
|
||||||
"version": "0.0.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.0.11.tgz",
|
|
||||||
"integrity": "sha512-D2kGr8NF2Er//Mx0c4+8FtOHuLrnwOlpC48TbtyxRSegG/Js15OKoqxxlG9BMUj3V/YSqtN8bUU6pjaRlsoSqg==",
|
|
||||||
"requires": {
|
|
||||||
"@cloudflare/workers-types": "^2.0.0",
|
|
||||||
"@types/mime": "^2.0.2",
|
|
||||||
"mime": "^2.4.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@cloudflare/workers-types": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-SFUPQzR5aV2TBLP4Re+xNX5KfAGArcRGA44OLulBDnfblEf3J+6kFvdJAQwFhFpqru3wImwT1cX0wahk6EeWTw=="
|
|
||||||
},
|
|
||||||
"@types/mime": {
|
|
||||||
"version": "2.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz",
|
|
||||||
"integrity": "sha512-4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q=="
|
|
||||||
},
|
|
||||||
"mime": {
|
|
||||||
"version": "2.4.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
|
|
||||||
"integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"private": true,
|
|
||||||
"name": "worker",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "A template for kick starting a Cloudflare Workers project",
|
|
||||||
"main": "index.js",
|
|
||||||
"author": "Ashley Lewis <ashleymichal@gmail.com>",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@cloudflare/kv-asset-handler": "~0.0.11"
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue