From 4e87195739f2a5d9a05451b48773c8afdc680765 Mon Sep 17 00:00:00 2001
From: akiyamn
Date: Sun, 24 Sep 2023 23:22:21 +1000
Subject: Initial commit (by create-cloudflare CLI)
---
.../middleware/middleware-serve-static-assets.ts | 56 ++++++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100644 node_modules/wrangler/templates/middleware/middleware-serve-static-assets.ts
(limited to 'node_modules/wrangler/templates/middleware/middleware-serve-static-assets.ts')
diff --git a/node_modules/wrangler/templates/middleware/middleware-serve-static-assets.ts b/node_modules/wrangler/templates/middleware/middleware-serve-static-assets.ts
new file mode 100644
index 0000000..4f72f40
--- /dev/null
+++ b/node_modules/wrangler/templates/middleware/middleware-serve-static-assets.ts
@@ -0,0 +1,56 @@
+///
+
+import {
+ getAssetFromKV,
+ NotFoundError,
+ MethodNotAllowedError,
+ serveSinglePageApp,
+} from "@cloudflare/kv-asset-handler";
+import type { Options } from "@cloudflare/kv-asset-handler";
+import { spaMode, cacheControl } from "config:middleware/serve-static-assets";
+import type * as kvAssetHandler from "@cloudflare/kv-asset-handler";
+import manifest from "__STATIC_CONTENT_MANIFEST";
+const ASSET_MANIFEST = JSON.parse(manifest);
+
+import type { Middleware } from "./common";
+
+const staticAssets: Middleware = async (request, env, _ctx, middlewareCtx) => {
+ let options: Partial = {
+ ASSET_MANIFEST,
+ ASSET_NAMESPACE: env.__STATIC_CONTENT,
+ cacheControl: cacheControl,
+ mapRequestToAsset: spaMode ? serveSinglePageApp : undefined,
+ };
+
+ try {
+ const page = await (getAssetFromKV as typeof kvAssetHandler.getAssetFromKV)(
+ {
+ request,
+ waitUntil(promise) {
+ return _ctx.waitUntil(promise);
+ },
+ },
+ options
+ );
+
+ // allow headers to be altered
+ const response = new Response(page.body, page);
+
+ response.headers.set("X-XSS-Protection", "1; mode=block");
+ response.headers.set("X-Content-Type-Options", "nosniff");
+ response.headers.set("X-Frame-Options", "DENY");
+ response.headers.set("Referrer-Policy", "unsafe-url");
+ response.headers.set("Feature-Policy", "none");
+
+ return response;
+ } catch (e) {
+ if (e instanceof NotFoundError || e instanceof MethodNotAllowedError) {
+ // if a known error is thrown then serve from actual worker
+ return await middlewareCtx.next(request, env);
+ }
+ // otherwise it's a real error, so throw it
+ throw e;
+ }
+};
+
+export default staticAssets;
--
cgit v1.2.3