17const CAMPSITE_ALERTS_THREAD_ID = "sdcup465jb7y";
18
19export default async function server(request: Request): Promise<Response> {
20 if (request.method !== "POST") {
21 return new Response("Method not allowed", { status: 405 });
3import { createRoot } from "https://esm.sh/react-dom/client";
4
5function Card({ content }) {
6 return (
7 <div className="card">
41}
42
43function JSONCards({ data }) {
44 if (!data || !data.results || !data.results.contents) {
45 return <p>Invalid JSON data structure</p>;
61}
62
63function App() {
64 const [jsonInput, setJsonInput] = useState('');
65 const [jsonData, setJsonData] = useState(null);
103}
104
105function client() {
106 createRoot(document.getElementById("root")).render(<App />);
107}
108if (typeof document !== "undefined") { client(); }
109
110export default async function server(request: Request): Promise<Response> {
111 return new Response(`
112 <html>
1import { email } from "https://esm.town/v/std/email?v=9";
2
3export async function errorReport(name) {
4 await email({ text: name });
5}
1import { ImageMagick, initializeImageMagick, MagickGeometry } from "https://deno.land/x/imagemagick_deno@0.0.14/mod.ts";
2
3export async function modifyImage(
4 file: File,
5 params: { width: number; height: number },
35
36export const hydrate = (importMetaURL: string) =>
37 async function(req: Request): Promise<Response> {
38 const { author, name } = extractValInfo(importMetaURL);
39 const valURL = `https://www.val.town/v/${author}/${name}`;
5import { Form, hydrate } from "https://esm.town/v/stevekrouse/ssr_react_mini?v=75";
6
7export async function loader(req: Request) {
8 const { sqlite } = await import("https://esm.town/v/std/sqlite?v=4");
9 const [, { columns, rows }] = await sqlite.batch([
20}
21
22export async function action(req: Request) {
23 const { sqlite } = await import("https://esm.town/v/std/sqlite?v=4");
24 const formData = await req.formData();
47}
48
49export function Component({ initialTodos, initialLogs }) {
50 const [todos, setTodos] = useState(initialTodos);
51 const [logs, setLogs] = useState(initialLogs);
54 useEffect(() => addLog(`Client rendered`), []);
55
56 function addTodo() {
57 setTodos([...todos, { text: newTodo }]);
58 setNewTodo("");
64 }
65
66 function toggleTodo(e) {
67 const formData = new FormData(e.target);
68 const id = parseInt(formData.get("id") as string);
71 }
72
73 function deleteTodo(e) {
74 const formData = new FormData(e.target);
75 const id = parseInt(formData.get("id") as string);
236};
237
238function AnalogueScheduleClock({
239 schedule = defaultSchedule,
240 todoList = defaultTodoList,
340}
341
342function App() {
343 return <AnalogueScheduleClock />;
344}
345
346function client() {
347 const rootElement = document.getElementById("root");
348 if (rootElement) {
357}
358
359export default async function server(request: Request): Promise<Response> {
360 return new Response(
361 `
199}
200
201function createCampsiteAPI(options?: RequestOptions): CampsiteAPI {
202 return new CampsiteAPI(options?.apiKey);
203}
204
205export async function getPost(postId: string, options?: RequestOptions) {
206 const api = createCampsiteAPI(options);
207 return api.getPost(postId);
208}
209
210export async function createPost(
211 data: CreatePostRequest,
212 options?: RequestOptions
216}
217
218export async function createComment(
219 data: CreateCommentRequest,
220 options?: RequestOptions
224}
225
226export async function createMessage(
227 data: CreateMessageRequest,
228 options?: RequestOptions
232}
233
234export async function listChannels(
235 params?: ListChannelsRequest,
236 options?: RequestOptions
7 "flex h-screen w-screen items-center justify-center overflow-hidden font-mono text-sm text-gray-800 touch-none";
8
9function InstantCursorsProvider(props: { children: JSX.Element }) {
10 const db = init({
11 appId: "25280469-70aa-4c6e-9d47-be46e0bca539", // ADD YOUR APP ID HERE
29}
30
31function App() {
32 return (
33 <div className="flex h-screen w-screen items-center justify-center bg-gray-100">
40}
41
42function client() {
43 createRoot(document.getElementById("root")).render(
44 <InstantCursorsProvider>
52}
53
54export default async function server(request: Request): Promise<Response> {
55 return new Response(
56 `
4import { createRoot } from "https://esm.sh/react-dom/client";
5
6function InstantCursors() {
7 const db = init<
8 {},
32}
33
34function App() {
35 return (
36 <div className="min-h-screen bg-red-100 flex items-center justify-center">
43}
44
45function client() {
46 createRoot(document.getElementById("root")).render(<App />);
47}
49if (typeof document !== "undefined") { client(); }
50
51export default async function server(request: Request): Promise<Response> {
52 return new Response(
53 `
A helper function to build a file's email
Simple functional CSS library for Val Town
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.
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": "*",