6
7/**
8 * Initialize the database schema
9 */
10export const initializeDatabase = async (metaUrl: string): Promise<void> => {
11 await sqlite.execute(`
12 CREATE TABLE IF NOT EXISTS ${TABLE_NAME} (
2import { generateShortCode } from "../shared/utils.ts";
3import {
4 initializeDatabase,
5 createShortUrl,
6 getRecentUrls,
7 findUrlByShortCode
8} from "./database/queries.ts";
9
10/**
12 */
13export default async function(request: Request): Promise<Response> {
14 // Initialize database on each request
15 await initializeDatabase(import.meta.url);
16
17 const url = new URL(request.url);
1# Database
2
3This directory contains database-related code.
4
5- `queries.ts` - Database operations for the URL shortener
4
5- `index.ts` - Main server entry point
6- `database/` - Database operations and queries
11## Project Structure
12
13- `/backend` - Server-side code and database operations
14- `/frontend` - React components and UI
15- `/shared` - Shared utilities and types
16- [ ] Rebuild as React Router?
17- [ ] opentownie as a pr bot
18- [ ] give it the ability to see its own client-side and server-side logs by building a middleware that shoves them into a SQL light database date and then give it a tool to access them
19- [ ] do a browser use or screenshot thing to give it access to its own visual output
20- [ ] Have it default to creating a new branch off main and then embedding and iframe to the resulting http val and give you a link to a pr opening url
7export const thinkTool = tool({
8 description:
9 "Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.",
10 parameters: z.object({
11 thought: z.string().describe("A thought to think about."),
166```
167โโโ backend/
168โ โโโ database/
169โ โ โโโ migrations.ts # Schema definitions
170โ โ โโโ queries.ts # DB query functions
228- Handle API calls properly with proper error catching
229
230### Database Patterns
231- Run migrations on startup or comment out for performance
232- Change table names when modifying schemas rather than altering
30 role: "Contributor",
31 joinDate: "June 10, 2023",
32 bio: "Backend developer with expertise in Node.js and database optimization."
33 }
34};
16}
17
18// Create the database table
19export async function createTable(): Promise<void> {
20 await sqlite.execute(`