Skip to content

Commit 98546cc

Browse files
committed
[VIP]
1 parent 5f42776 commit 98546cc

File tree

7 files changed

+82
-50
lines changed

7 files changed

+82
-50
lines changed

.github/workflows/checksum.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Main
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*.*.*"
7+
paths:
8+
- "lib/sh/**"
9+
- "lib/zsh/**"
10+
workflow_dispatch: {}
11+
12+
jobs:
13+
release:
14+
name: Create release
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout sources
18+
uses: actions/checkout@v2
19+
- name: Download releaseartifacts
20+
uses: actions/download-artifact@v2
21+
with:
22+
name: release-artifacts
23+
path: lib
24+
- name: Generate checksum
25+
uses: jmgilman/actions-generate-checksum@57c13a1f01a90b2a8bb449ec29bc23728b96c1cd
26+
with:
27+
patterns: |
28+
lib/zsh/init.zsh
29+
- name: Create release
30+
uses: softprops/action-gh-release@v1
31+
with:
32+
files: |
33+
lib/zsh/checksum.txt
34+
lib/zsh/init.zsh

workers/cache/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
"devDependencies": {
1717
"@cloudflare/workers-types": "3.14.1",
1818
"prettier": "2.7.1",
19-
"wrangler": "2.0.22",
20-
"typescript": "4.7.4"
19+
"typescript": "4.7.4",
20+
"wrangler": "2.0.22"
2121
},
2222
"engines": {
2323
"node": ">=16"

workers/cache/src/index.ts

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,27 @@
1-
async function handleRequest(event) {
2-
const request = event.request;
3-
const cacheUrl = new URL(request.url);
4-
const cacheKey = new Request(cacheUrl.toString(), request);
5-
const cache = caches.default;
1+
export default {
2+
async fetch(request, env, context) {
3+
try {
4+
const cacheUrl = new URL(request.url);
5+
const cacheKey = new Request(cacheUrl.toString(), request);
6+
const cache = caches.default;
67

7-
let response = await cache.match(cacheKey);
8+
let response = await cache.match(cacheKey);
89

9-
if (!response) {
10-
console.log(
11-
`Response for request url: ${request.url} not present in cache. Fetching and caching request.`
12-
);
13-
response = await fetch(request);
14-
response = new Response(response.body, response);
15-
response.headers.append("Cache-Control", "s-maxage=360");
10+
if (!response) {
11+
console.log(
12+
`Response for request url: ${request.url} not present in cache. Fetching and caching request.`
13+
);
14+
response = await fetch(request);
15+
response = new Response(response.body, response);
16+
response.headers.append("Cache-Control", "s-maxage=60");
1617

17-
event.waitUntil(cache.put(cacheKey, response.clone()));
18-
} else {
19-
console.log(`Cache hit for: ${request.url}.`);
20-
}
21-
return response;
22-
}
23-
24-
addEventListener("fetch", (event) => {
25-
try {
26-
return event.respondWith(handleRequest(event));
27-
} catch (e) {
28-
return event.respondWith(new Response("Error thrown " + e.message));
29-
}
30-
});
18+
context.waitUntil(cache.put(cacheKey, response.clone()));
19+
} else {
20+
console.log(`Cache hit for: ${request.url}.`);
21+
}
22+
return response;
23+
} catch (e) {
24+
return new Response("Error thrown " + e.message);
25+
}
26+
},
27+
};

workers/cache/src/cache.ts renamed to workers/cache/src/r2_index.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,13 @@ export default {
2525
const headers = new Headers();
2626
object.writeHttpMetadata(headers);
2727
headers.set("etag", object.httpEtag);
28-
headers.set("Cache-Control", "s-maxage=84000");
29-
headers.set("Cache-Control", "max-age=14400");
30-
headers.append("Cache-Control", "stale-if-error=400");
31-
32-
headers.append("Cloudflare-CDN-Cache-Control", "stale-if-error=60");
33-
headers.append("CDN-Cache-Control", "stale-if-error=200");
34-
35-
headers.append("Cloudflare-CDN-Cache-Control", "max-age=24400");
36-
headers.append("CDN-Cache-Control", "max-age=18000");
28+
headers.append("Cache-Control", "s-maxage=10");
3729

3830
response = new Response(object.body, {
3931
headers,
4032
});
4133

4234
context.waitUntil(cache.put(cacheKey, response.clone()));
43-
4435
return response;
4536
} catch (e) {
4637
return new Response("Error thrown " + e.message);

workers/cache/wrangler.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ main = "src/index.ts"
33
compatibility_date = "2022-07-19"
44
workers_dev = false
55
account_id = "2db2112b269ed3616ed3a863a222f3e8"
6-
route = { pattern = "wiki.zshell.dev/*", zone_id = "88404a09f4a582bb65186110a35d1151" }
6+
route = { pattern = "https://wiki.zshell.dev/*", zone_id = "88404a09f4a582bb65186110a35d1151" }
77
r2_buckets = [
88
{ binding = "R2_STORE", bucket_name = "r2-store", preview_bucket_name = "" },
99
]

workers/r2-store/src/index.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function parseRange(
2020

2121
function objectNotFound(objectName: string): Response {
2222
return new Response(
23-
`<html><body>R2 object "<b>${objectName}</b>" not found</body></html>`,
23+
`<html><body style="background-color:black; color:white"><h3 style="text-align:center">R2 object "<b>${objectName}</b>" not found</h3></body></html>`,
2424
{
2525
status: 404,
2626
headers: {
@@ -51,7 +51,7 @@ export default {
5151
};
5252
console.log(JSON.stringify(options));
5353

54-
const listing = await env.R2_BUCKET.list(options);
54+
const listing = await env.R2_STORE.list(options);
5555
return new Response(JSON.stringify(listing), {
5656
headers: {
5757
"content-type": "application/json; charset=UTF-8",
@@ -61,7 +61,7 @@ export default {
6161

6262
if (request.method === "GET") {
6363
const range = parseRange(request.headers.get("range"));
64-
const object = await env.R2_BUCKET.get(objectName, {
64+
const object = await env.R2_STORE.get(objectName, {
6565
range,
6666
onlyIf: request.headers,
6767
});
@@ -73,14 +73,20 @@ export default {
7373
const headers = new Headers();
7474
object.writeHttpMetadata(headers);
7575
headers.set("etag", object.httpEtag);
76+
/** headers.append("Access-Control-Allow-Headers", "Content-Type, Set-Cookie, Cache-Control");
77+
headers.append("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, OPTIONS");
78+
headers.append("Access-Control-Allow-Origin", "htt");
79+
headers.append("Access-Control-Max-Age", "600");
80+
headers.append("Vary", "Origin, Accept-Encoding"); */
81+
7682
const status = object.body ? (range ? 206 : 200) : 304;
7783
return new Response(object.body, {
7884
headers,
7985
status,
8086
});
8187
}
8288

83-
const object = await env.R2_BUCKET.head(objectName);
89+
const object = await env.R2_STORE.head(objectName);
8490

8591
if (object === null) {
8692
return objectNotFound(objectName);
@@ -89,14 +95,14 @@ export default {
8995
const headers = new Headers();
9096
object.writeHttpMetadata(headers);
9197
headers.set("etag", object.httpEtag);
92-
headers.append("Access-Control-Allow-Origin", "https://wiki.zshell.dev");
93-
9498
return new Response(null, {
9599
headers,
96100
});
97101
}
102+
103+
/**
98104
if (request.method === "PUT" || request.method == "POST") {
99-
const object = await env.R2_BUCKET.put(objectName, request.body, {
105+
const object = await env.R2_STORE.put(objectName, request.body, {
100106
httpMetadata: request.headers,
101107
});
102108
return new Response(null, {
@@ -106,10 +112,10 @@ export default {
106112
});
107113
}
108114
if (request.method === "DELETE") {
109-
await env.R2_BUCKET.delete(url.pathname.slice(1));
115+
await env.R2_STORE.delete(url.pathname.slice(1));
110116
return new Response();
111117
}
112-
118+
*/
113119
return new Response(`Unsupported method`, {
114120
status: 400,
115121
});

workers/r2-store/wrangler.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ main = "src/index.ts"
33
compatibility_date = "2022-07-11"
44
workers_dev = false
55
account_id = "2db2112b269ed3616ed3a863a222f3e8"
6+
routes = [
7+
{ pattern = "r2.zshell.dev", custom_domain = true },
8+
{ pattern = "https://*.zshell.dev/r2/*", zone_id = "88404a09f4a582bb65186110a35d1151" },
9+
]
610

711
[[r2_buckets]]
8-
binding = "R2_BUCKET"
12+
binding = "R2_STORE"
913
bucket_name = "r2-store"

0 commit comments

Comments
 (0)