mirror of
https://github.com/msfjarvis/msfjarvis.dev.git
synced 2024-06-03 04:18:56 +05:30
workers-site: sync from redirekt
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
ba6339974e
commit
c54dedcb03
|
@ -1,74 +1,71 @@
|
||||||
import { getAssetFromKV } from '@cloudflare/kv-asset-handler';
|
import { getAssetFromKV } from '@cloudflare/kv-asset-handler'
|
||||||
|
|
||||||
const GITHUB_USERNAME = 'msfjarvis';
|
const GITHUB_USERNAME = 'msfjarvis'
|
||||||
const APS_SLUG = 'Android-Password-Store/Android-Password-Store';
|
const APS_SLUG = 'Android-Password-Store/Android-Password-Store'
|
||||||
const GITHUB_URL = `https://github.com/${GITHUB_USERNAME}`;
|
const GITHUB_URL = `https://github.com/${GITHUB_USERNAME}`
|
||||||
const APS_GITHUB_URL = `https://github.com/${APS_SLUG}`;
|
const APS_GITHUB_URL = `https://github.com/${APS_SLUG}`
|
||||||
|
|
||||||
export async function handleRequest(event: FetchEvent): Promise<Response> {
|
export async function handleRequest(event: FetchEvent): Promise<Response> {
|
||||||
return redirectGitHub(event);
|
return redirectGitHub(event)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getPageFromKV(event: FetchEvent): Promise<Response> {
|
async function getPageFromKV(event: FetchEvent): Promise<Response> {
|
||||||
const options = {};
|
const options = {}
|
||||||
|
try {
|
||||||
|
const page = await getAssetFromKV(event, options)
|
||||||
|
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) {
|
||||||
try {
|
try {
|
||||||
const page = await getAssetFromKV(event, options);
|
let notFoundResponse = await getAssetFromKV(event, {
|
||||||
const response = new Response(page.body, page);
|
mapRequestToAsset: (req) =>
|
||||||
response.headers.set('X-XSS-Protection', '1; mode=block');
|
new Request(`${new URL(req.url).origin}/404.html`, req),
|
||||||
response.headers.set('X-Content-Type-Options', 'nosniff');
|
})
|
||||||
response.headers.set('X-Frame-Options', 'DENY');
|
return new Response(notFoundResponse.body, {
|
||||||
response.headers.set('Referrer-Policy', 'unsafe-url');
|
...notFoundResponse,
|
||||||
response.headers.set('Feature-Policy', 'none');
|
status: 404,
|
||||||
return response;
|
})
|
||||||
} catch (e) {
|
} catch (e) {}
|
||||||
try {
|
return new Response(e.message || e.toString(), { status: 500 })
|
||||||
let notFoundResponse = await getAssetFromKV(event, {
|
}
|
||||||
mapRequestToAsset: (req) =>
|
|
||||||
new Request(`${new URL(req.url).origin}/404.html`, req),
|
|
||||||
});
|
|
||||||
return new Response(notFoundResponse.body, {
|
|
||||||
...notFoundResponse,
|
|
||||||
status: 404,
|
|
||||||
});
|
|
||||||
} catch (e) {}
|
|
||||||
return new Response(e.message || e.toString(), { status: 500 });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function redirectGitHub(event: FetchEvent): Promise<Response> {
|
async function redirectGitHub(event: FetchEvent): Promise<Response> {
|
||||||
const urlParts = event.request.url.replace(BASE_URL, '').split('/');
|
const urlParts = event.request.url.replace(BASE_URL, '').split('/')
|
||||||
switch (urlParts[0]) {
|
switch (urlParts[0]) {
|
||||||
case 'g':
|
case 'g':
|
||||||
switch (urlParts.length) {
|
switch (urlParts.length) {
|
||||||
case 1:
|
case 1:
|
||||||
return Response.redirect(GITHUB_URL, 301);
|
return Response.redirect(GITHUB_URL, 301)
|
||||||
case 2:
|
case 2:
|
||||||
return Response.redirect(
|
return Response.redirect(`${GITHUB_URL}/${urlParts[1]}`, 301)
|
||||||
`${GITHUB_URL}/${urlParts[1]}`,
|
case 3:
|
||||||
301
|
return Response.redirect(
|
||||||
);
|
`${GITHUB_URL}/${urlParts[1]}/commit/${urlParts[2]}`,
|
||||||
case 3:
|
301,
|
||||||
return Response.redirect(
|
)
|
||||||
`${GITHUB_URL}/${urlParts[1]}/commit/${urlParts[2]}`,
|
}
|
||||||
301
|
case 'aps':
|
||||||
);
|
switch (urlParts.length) {
|
||||||
}
|
case 1:
|
||||||
case 'aps':
|
return Response.redirect(APS_GITHUB_URL, 301)
|
||||||
switch (urlParts.length) {
|
case 2:
|
||||||
case 1:
|
return Response.redirect(
|
||||||
return Response.redirect(APS_GITHUB_URL, 301);
|
`${APS_GITHUB_URL}/commit/${urlParts[1]}`,
|
||||||
case 2:
|
301,
|
||||||
return Response.redirect(
|
)
|
||||||
`${APS_GITHUB_URL}/commit/${urlParts[1]}`,
|
case 3:
|
||||||
301
|
return Response.redirect(
|
||||||
);
|
`${APS_GITHUB_URL}/issues/${urlParts[2]}`,
|
||||||
case 3:
|
301,
|
||||||
return Response.redirect(
|
)
|
||||||
`${APS_GITHUB_URL}/issues/${urlParts[2]}`,
|
}
|
||||||
301
|
default:
|
||||||
);
|
return getPageFromKV(event)
|
||||||
}
|
}
|
||||||
default:
|
|
||||||
return getPageFromKV(event);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user