--- /dev/null
+class InjectStyle {
+ element(element) {
+ element.prepend(`<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/sakura.css@1.3.1/css/sakura.min.css">`, { html: true });
+ }
+}
+
+async function handleRequest(request) {
+ const url = new URL(request.url);
+ const queryString = decodeURIComponent(url.search.substring(1));
+
+ const response = await fetch(queryString);
+ return new HTMLRewriter().on('html', new InjectStyle()).transform(response);
+}
+
+addEventListener('fetch', event => {
+ event.respondWith(handleRequest(event.request));
+})
--- /dev/null
+{
+ "name": "style",
+ "version": "0.1.0",
+ "description": "Reverse proxy which injects a basic CSS style sheet.",
+ "private": true,
+ "main": "index.js",
+ "scripts": {
+ "login": "wrangler login",
+ "dev": "wrangler dev",
+ "preview": "wrangler preview",
+ "build": "wrangler build",
+ "publish": "wrangler publish"
+ },
+ "author": "Ardis Lu",
+ "license": "ISC",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/ardislu/cloudflare-workers.git"
+ }
+}