9* Added 25 small prompt phrases below the generate button to assist in website generation.
10* A welcome message from the Mayor of val.town is now included.
11* When submitted, it now iterates step by step in a tree structure on features for main functionality.
12* Sub-functionalities are now listed under the main functionality to help describe it better.
13*/
14/** @jsxImportSource https://esm.sh/react */
124"serverless",
125"aws-sdk",
126"azure-functions",
127],
128database: [
270];
271272function App() {
273const [idea, setIdea] = useState("");
274const [prompt, setPrompt] = useState("");
294}
295296const subFunctionalities = generateSubFunctionalities(idea);
297298const generatedPrompt = `Create a Hono application for Deno with the following features:
2991. Main functionality: ${idea}
300Sub-functionalities:
301${subFunctionalities.map(sub => ` - ${sub}`).join("\n")}
3022. Incorporate Hono features:
303${features.hono.map(feature => `- ${feature}`).join("\n ")}
330"Initialize project structure",
331"Set up Hono router",
332"Implement main functionality logic",
333"Add database integration",
334"Implement authentication system",
342};
343344const generateSubFunctionalities = (mainIdea: string) => {
345// This is a simple example. In a real-world scenario, you might use AI or a more sophisticated algorithm
346const commonSubFunctionalities = [
347"User authentication and authorization",
348"Data persistence and retrieval",
352];
353354const specificSubFunctionalities = mainIdea.split(" ")
355.filter(word => word.length > 3)
356.map(word => `${word.charAt(0).toUpperCase() + word.slice(1)} management`);
357358return [...new Set([...commonSubFunctionalities, ...specificSubFunctionalities])].slice(0, 5);
359};
360516}
517518function client() {
519createRoot(document.getElementById("root")).render(<App />);
520}
524}
525526async function server(request: Request): Promise<Response> {
527return new Response(
528`
21];
2223function App() {
24const [idea, setIdea] = useState("");
25const [prompt, setPrompt] = useState("");
81}
8283function client() {
84createRoot(document.getElementById("root")).render(<App />);
85}
89}
9091async function server(request: Request): Promise<Response> {
92const url = new URL(request.url);
93
multirouteHonomain.tsx5 matches
12const app = new Hono();
1314function App() {
15const [page, setPage] = React.useState('home');
1653}
5455function HomePage() {
56return (
57<div>
62}
6364function AboutPage() {
65return (
66<div>
71}
7273function ServicesPage() {
74return (
75<div>
86}
8788function client() {
89createRoot(document.getElementById("root")).render(<App />);
90}
pollRSSFeedsmain.tsx1 match
3import { rssFeeds } from "https://www.val.town/v/cdnclass/scrawnyLavenderThrush/rssFeeds";
45export async function pollRSSFeeds({ lastRunAt }: Interval) {
6return Promise.all(
7Object.entries(rssFeeds).map(async ([name, url]) => {
valleBlogV0main.tsx4 matches
8import _ from "npm:lodash@4";
910async function main(req: Request): Promise<Response> {
11const { readable, writable } = new TransformStream();
12const writer = writable.getWriter();
20<script>
21// Scroll to the bottom of the page when the page changes.
22(new MutationObserver(function (mutationsList, observer) {
23window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: "instant" });
24})).observe(document, { childList: true, characterData: true, subtree: true });
47Your response should start with \`\`\`ts and end with \`\`\`, so full code fences.
48There should be no comments like "more content here", it should be complete and directly runnable.
49The val should have an "export default async function main". The val should return a valid HTML website.
50Prefer using Tailwind. Put frontend functions in a <script> tag, using dangerouslySetInnerHTML. Don't use Hono. Don't use Response.redirect.
51`.replace("\n", " "),
52},
postmanClonemain.tsx4 matches
2* This val creates a Postman-like interface for testing HTTP requests directly in the browser.
3* It uses React for the UI and the Fetch API to make requests.
4* The server function serves the HTML and handles the API requests.
5*/
69import { createRoot } from "https://esm.sh/react-dom/client";
1011function App() {
12const [url, setUrl] = useState('https://jsonplaceholder.typicode.com/posts/1');
13const [method, setMethod] = useState('GET');
94}
9596function client() {
97createRoot(document.getElementById("root")).render(<App />);
98}
102}
103104async function server(request: Request): Promise<Response> {
105const url = new URL(request.url);
106
niceTodoListmain.tsx1 match
89// Server-side only code
10export default async function server(request: Request): Promise<Response> {
11const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
12const SCHEMA_VERSION = 1
multiplayerCirclesmain.tsx6 matches
37// });
3839function parseResultSet<T>(row: ResultSet): T[] {
40return row.rows.map((r) => Object.fromEntries(r.map((c, i) => [row.columns[i], c]))) as T[];
41}
51};
5253function diffCircles(array1: Circle[], array2: Circle[]): Circle[] {
54const changes: Circle[] = [];
557475const drag = (() => {
76function dragstarted() {
77d3.select(this).attr("stroke", "black");
78}
7980function dragged(event, d) {
81d3.select(this).raise().attr("cx", d.x = event.x).attr("cy", d.y = event.y);
82}
8384function dragended() {
85const x = d3.select(this).attr("cx");
86const y = d3.select(this).attr("cy");
105.call(drag)
106.on("click", clicked);
107function clicked(event, d) {
108if (event.defaultPrevented) return; // dragged
109
czarkowyEdytorDatmain.tsx3 matches
10import { createRoot } from "https://esm.sh/react-dom/client";
1112function App() {
13const [image, setImage] = useState(null);
14const [text, setText] = useState("Enter text here");
178}
179180function client() {
181createRoot(document.getElementById("root")).render(<App />);
182}
186}
187188async function server(request: Request): Promise<Response> {
189return new Response(`
190<html>
anthropicProxymain.tsx1 match
1import Anthropic from "npm:@anthropic-ai/sdk@0.24.3";
23export default async function(req: Request): Promise<Response> {
4if (req.method === "OPTIONS") {
5return new Response(null, {