8 saveTourProgress,
9 getTourProgress
10} from "../database/queries.ts";
11import type { Itinerary, ItineraryRequest, TourProgress, ApiResponse } from "../../shared/types.ts";
12
36 `);
37
38 console.log('Database migrations completed');
39}
40
15```
16โโโ backend/
17โ โโโ database/
18โ โ โโโ migrations.ts # Database schema setup
19โ โ โโโ queries.ts # Itinerary CRUD operations
20โ โโโ routes/
190
191/**
192 * Get database statistics for the homepage
193 */
194export async function getSearchStats(): Promise<{
873 const offset = (page - 1) * pageSize;
874
875 // Start all database queries in parallel
876 // 1. Launch count queries
877 const countsPromise = withTiming(() => Promise.all([
960 ));
961
962 // Wait for all database operations to complete in parallel
963 const [
964 [countsResult, countsTime],
1223 <a href="?q=fetch" className="example-link">fetch</a>
1224 <a href="?q=api" className="example-link">api</a>
1225 <a href="?q=database" className="example-link">database</a>
1226 <a href="?q=image" className="example-link">image</a>
1227 <a href="?q=function" className="example-link">function</a>
1377 <a href="?q=fetch" className="example-link">fetch</a>
1378 <a href="?q=api" className="example-link">api</a>
1379 <a href="?q=database" className="example-link">database</a>
1380 <a href="?q=image" className="example-link">image</a>
1381 <a href="?q=function" className="example-link">function</a>
151 const needFullDocsData = searchTerm && (resultType === "docs" || format.toLowerCase() === "json");
152
153 // Run database search in parallel with appropriate docs search
154 const [searchResponse, docsResult] = await Promise.all([
155 // Database search for files, projects, users
156 searchTerm
157 ? searchFileContentWithContext(searchTerm, 2, page, pageSize, resultType !== "docs" ? resultType : undefined) // Show 2 lines of context
194 };
195
196 // Only get database stats when needed (no query or empty results)
197 const totalResults = combinedResponse.totalFileResults +
198 combinedResponse.totalProjectResults +
21## Further resources
22
23- [React Hono Example](https://www.val.town/x/stevekrouse/reactHonoExample) is a bigger example project, with a SQLite database table, queries, client-side CSS, a favicon, and shared code that runs on both client and server.
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { readFile, serveFile } from "https://esm.town/v/std/utils@85-main/index.ts";
3import { runMigrations } from "./database/migrations.ts";
4import expenses from "./routes/expenses.ts";
5import goals from "./routes/goals.ts";
15});
16
17// Initialize database on startup
18await runMigrations();
19
69 <p class="text-sm text-blue-800">
70 <strong>API Status:</strong> โ
Backend is running<br>
71 <strong>Database:</strong> โ
Initialized<br>
72 <strong>Frontend:</strong> โ Not found
73 </p>
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { getUser, updateUser, setBudget, getBudgets } from "../database/queries.ts";
3import { getMonthYear } from "../../shared/utils.ts";
4
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { getMonthlyReport, getCategorySpending, getUser, getGoals, getBudgets } from "../database/queries.ts";
3import { generateSavingsInsights, generateMotivationalMessage, getMonthYear } from "../../shared/utils.ts";
4