chore: normalize formatting for workers

This commit is contained in:
Cory Dransfeldt 2024-10-19 19:53:31 -07:00
parent 2f6cfbe7ae
commit 2cd835d31b
No known key found for this signature in database
14 changed files with 879 additions and 604 deletions

View file

@ -1,77 +1,79 @@
import { createClient } from '@supabase/supabase-js'
import { fetchDataByUrl, fetchGlobals } from './utils/fetchers.js'
import { createClient } from "@supabase/supabase-js";
import { fetchDataByUrl, fetchGlobals } from "./utils/fetchers.js";
import {
generateArtistHTML,
generateBookHTML,
generateGenreHTML,
generateMetadata,
generateWatchingHTML
} from './utils/generators.js'
import { updateDynamicContent } from './utils/updaters.js'
generateWatchingHTML,
} from "./utils/generators.js";
import { updateDynamicContent } from "./utils/updaters.js";
const BASE_URL = 'https://coryd.dev'
const NOT_FOUND_URL = `${BASE_URL}/404`
const BASE_URL = "https://coryd.dev";
const NOT_FOUND_URL = `${BASE_URL}/404`;
export default {
async fetch(request, env) {
const url = new URL(request.url)
const path = url.pathname.replace(/\/$/, '')
const supabaseUrl = env.SUPABASE_URL || process.env.SUPABASE_URL
const supabaseKey = env.SUPABASE_KEY || process.env.SUPABASE_KEY
const supabase = createClient(supabaseUrl, supabaseKey)
let data, type
const url = new URL(request.url);
const path = url.pathname.replace(/\/$/, "");
const supabaseUrl = env.SUPABASE_URL || process.env.SUPABASE_URL;
const supabaseKey = env.SUPABASE_KEY || process.env.SUPABASE_KEY;
const supabase = createClient(supabaseUrl, supabaseKey);
let data, type;
if (path === '/books' || path === '/books/') return fetch(`${BASE_URL}/books/`)
if (path.startsWith('/books/years/')) return fetch(`${BASE_URL}${path}`)
if (path === "/books" || path === "/books/")
return fetch(`${BASE_URL}/books/`);
if (path.startsWith("/books/years/")) return fetch(`${BASE_URL}${path}`);
if (path.startsWith('/watching/movies/')) {
data = await fetchDataByUrl(supabase, 'optimized_movies', path)
type = 'movie'
} else if (path.startsWith('/watching/shows/')) {
data = await fetchDataByUrl(supabase, 'optimized_shows', path)
type = 'show'
} else if (path.startsWith('/music/artists/')) {
data = await fetchDataByUrl(supabase, 'optimized_artists', path)
type = 'artist'
} else if (path.startsWith('/music/genres/')) {
data = await fetchDataByUrl(supabase, 'optimized_genres', path)
type = 'genre'
} else if (path.startsWith('/books/')) {
data = await fetchDataByUrl(supabase, 'optimized_books', path)
type = 'book'
if (path.startsWith("/watching/movies/")) {
data = await fetchDataByUrl(supabase, "optimized_movies", path);
type = "movie";
} else if (path.startsWith("/watching/shows/")) {
data = await fetchDataByUrl(supabase, "optimized_shows", path);
type = "show";
} else if (path.startsWith("/music/artists/")) {
data = await fetchDataByUrl(supabase, "optimized_artists", path);
type = "artist";
} else if (path.startsWith("/music/genres/")) {
data = await fetchDataByUrl(supabase, "optimized_genres", path);
type = "genre";
} else if (path.startsWith("/books/")) {
data = await fetchDataByUrl(supabase, "optimized_books", path);
type = "book";
} else {
return Response.redirect(NOT_FOUND_URL, 302)
return Response.redirect(NOT_FOUND_URL, 302);
}
if (!data) return Response.redirect(NOT_FOUND_URL, 302)
if (!data) return Response.redirect(NOT_FOUND_URL, 302);
const globals = await fetchGlobals(supabase)
let mediaHtml
const globals = await fetchGlobals(supabase);
let mediaHtml;
switch (type) {
case 'artist':
mediaHtml = generateArtistHTML(data, globals)
break
case 'genre':
mediaHtml = generateGenreHTML(data, globals)
break
case 'book':
mediaHtml = generateBookHTML(data, globals)
break
case "artist":
mediaHtml = generateArtistHTML(data, globals);
break;
case "genre":
mediaHtml = generateGenreHTML(data, globals);
break;
case "book":
mediaHtml = generateBookHTML(data, globals);
break;
default:
mediaHtml = generateWatchingHTML(data, globals, type)
break
mediaHtml = generateWatchingHTML(data, globals, type);
break;
}
const templateResponse = await fetch(`${BASE_URL}/dynamic.html`)
const template = await templateResponse.text()
const metadata = generateMetadata(data, type, globals)
const html = updateDynamicContent(template, metadata, mediaHtml)
const templateResponse = await fetch(`${BASE_URL}/dynamic.html`);
const template = await templateResponse.text();
const metadata = generateMetadata(data, type, globals);
const html = updateDynamicContent(template, metadata, mediaHtml);
const headers = new Headers({
'Content-Type': 'text/html',
'Cache-Control': 'public, max-age=3600, s-maxage=3600, stale-while-revalidate=86400',
})
"Content-Type": "text/html",
"Cache-Control":
"public, max-age=3600, s-maxage=3600, stale-while-revalidate=86400",
});
return new Response(html, { headers })
}
}
return new Response(html, { headers });
},
};