1import Cerebras from "https://esm.sh/@cerebras/cerebras_cloud_sdk";
2
3export default async function server(request: Request): Promise<Response> {
4 const url = new URL(request.url);
5 const formData = new URLSearchParams(url.search);
4import { createRoot } from "https://esm.sh/react-dom/client";
5
6function slugify(text: string): string {
7 return text
8 .toLowerCase()
13}
14
15function shuffleArray<T>(array: T[]): T[] {
16 const newArray = [...array];
17 for (let i = newArray.length - 1; i > 0; i--) {
22}
23
24function CreateGame() {
25 const [name, setName] = useState("");
26 const [terms, setTerms] = useState("");
84}
85
86function BingoCard(
87 { gameId, playerId, name, terms }: { gameId: string; playerId: string; name: string; terms: string[] },
88) {
219}
220
221function AdminPanel() {
222 const [games, setGames] = useState<
223 Array<{
298}
299
300function client() {
301 const root = document.getElementById("root");
302 if (!root) return;
329if (typeof document !== "undefined") { client(); }
330
331export default async function server(req: Request): Promise<Response> {
332 const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
333 const url = new URL(req.url);
2import { renderToString } from "npm:react-dom/server";
3
4export default async function(req: Request) {
5 return new Response(
6 renderToString(
51 <script dangerouslySetInnerHTML={{
52 __html: `
53 document.addEventListener('DOMContentLoaded', function() {
54 const catChat = document.querySelector("#cat-chat");
55 if (catChat) {
3import { createRoot } from "https://esm.sh/react-dom/client";
4
5function App() {
6 return (
7 <div className="container">
29}
30
31function client() {
32 createRoot(document.getElementById("root")).render(<App />);
33}
34if (typeof document !== "undefined") { client(); }
35
36export default async function server(request: Request): Promise<Response> {
37 return new Response(`
38 <html>
1export function logUrlVersion(url) {
2 const versionMatch = url.match(/[?&]v=([^&]*)/);
3 const version = versionMatch ? versionMatch[1] : "latest";
1export default async function(req: Request): Promise<Response> {
2 return Response.json({ ok: true });
3}
1export function logUrlVersion(url) {
2 const versionMatch = url.match(/[?&]v=([^&]*)/);
3 const version = versionMatch ? versionMatch[1] : "latest";
1This helper function logs the version number of the val.
2
3```ts
3 * and sends them up to the application so Townie can help fix them.
4 */
5function errorHandler(e: any) {
6 window.top?.postMessage({
7 type: "error",
1export default async function server(req: Request): Promise<Response> {
2 return new Response(
3 `<!DOCTYPE html>
65 dateSelect.max = formatDate(yesterday); // Prevent future dates
66
67 async function fetchData() {
68 try {
69 loadingElement.classList.remove('hidden');
90 }
91
92 function sortData(key, direction) {
93 tableData.sort((a, b) => {
94 const aVal = a[key];
104 }
105
106 function renderTable() {
107 const tbody = document.getElementById('tableBody');
108 tbody.innerHTML = '';
A helper function to build a file's email
Simple functional CSS library for Val Town
import { OpenAI } from "https://esm.town/v/std/openai";
export default async function(req: Request): Promise<Response> {
if (req.method === "OPTIONS") {
return new Response(null, {
headers: {
"Access-Control-Allow-Origin": "*",
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.