1# Let Him Cook
2
3Query database (instantdb) with natural langauge in email. This just a demo sometimes can be inconsistent.
4
5Email: vawogbemi.lhc@valtown.email
17 { name: "Express", icon: "đ", explanation: "Fast, unopinionated, minimalist web framework for Node.js", complexity: 2 },
18 { name: "Django", icon: "đž", explanation: "A high-level Python Web framework that encourages rapid development", complexity: 3 },
19 { name: "Ruby on Rails", icon: "đ€ïž", explanation: "A web-application framework that includes everything needed to create database-backed web applications", complexity: 3 },
20 { name: "Flask", icon: "đ§Ș", explanation: "A lightweight WSGI web application framework in Python", complexity: 2 },
21 ],
22 database: [
23 { name: "PostgreSQL", icon: "đ", explanation: "A powerful, open source object-relational database system", complexity: 3 },
24 { name: "MongoDB", icon: "đ", explanation: "A document-oriented NoSQL database used for high volume data storage", complexity: 2 },
25 { name: "MySQL", icon: "đŹ", explanation: "An open-source relational database management system", complexity: 2 },
26 { name: "Redis", icon: "đŽ", explanation: "An open source, in-memory data structure store, used as a database, cache, and message broker", complexity: 2 },
27 { name: "SQLite", icon: "đïž", explanation: "A C-language library that implements a small, fast, self-contained SQL database engine", complexity: 1 },
28 ],
29 deployment: [
85 stack.push(techOptions.backend[Math.floor(Math.random() * 3)]);
86 }
87 stack.push(techOptions.database[Math.floor(Math.random() * 3)]);
88 stack.push(techOptions.deployment[Math.floor(Math.random() * 3)]);
89 setRecommendedStack(stack);
33}
34console.log("huh?");
35// DATABASE
36const kv = new DenoSyntheticKV("passkeys_example");
37
98 <ul>
99 <li><i className="fas fa-tachometer-alt"></i> Amélioration significative des performances</li>
100 <li><i className="fas fa-database"></i> Augmentation de l'espace de stockage disponible</li>
101 <li><i className="fas fa-clock"></i> Réduction des temps de chargement</li>
102 <li><i className="fas fa-heartbeat"></i> Prolongation de la durée de vie de votre ordinateur</li>
135 return (
136 <div className="service-page">
137 <h1><i className="fas fa-database"></i> Sauvegarde & Récupération</h1>
138 <BackupSVG />
139 <p>Notre service de sauvegarde et récupération vous aide à protéger vos données importantes et à les récupérer en cas de problÚme.</p>
307 { id: 2, name: "Nettoyage & Optimisation", icon: "fas fa-broom", description: "Accélérez votre ordinateur" },
308 { id: 3, name: "Réparation Matérielle", icon: "fas fa-tools", description: "Réparation de tous composants" },
309 { id: 4, name: "Sauvegarde & Récupération", icon: "fas fa-database", description: "Protégez vos données" },
310 { id: 5, name: "Installation Logicielle", icon: "fas fa-download", description: "Configuration personnalisée" },
311 { id: 6, name: "Support à Distance", icon: "fas fa-globe", description: "Assistance en ligne immédiate" }
98 <ul>
99 <li><i className="fas fa-tachometer-alt"></i> Amélioration significative des performances</li>
100 <li><i className="fas fa-database"></i> Augmentation de l'espace de stockage disponible</li>
101 <li><i className="fas fa-clock"></i> Réduction des temps de chargement</li>
102 <li><i className="fas fa-heartbeat"></i> Prolongation de la durée de vie de votre ordinateur</li>
135 return (
136 <div className="service-page">
137 <h1><i className="fas fa-database"></i> Sauvegarde & Récupération</h1>
138 <BackupSVG />
139 <p>Notre service de sauvegarde et récupération vous aide à protéger vos données importantes et à les récupérer en cas de problÚme.</p>
307 { id: 2, name: "Nettoyage & Optimisation", icon: "fas fa-broom", description: "Accélérez votre ordinateur" },
308 { id: 3, name: "Réparation Matérielle", icon: "fas fa-tools", description: "Réparation de tous composants" },
309 { id: 4, name: "Sauvegarde & Récupération", icon: "fas fa-database", description: "Protégez vos données" },
310 { id: 5, name: "Installation Logicielle", icon: "fas fa-download", description: "Configuration personnalisée" },
311 { id: 6, name: "Support à Distance", icon: "fas fa-globe", description: "Assistance en ligne immédiate" }
98 <ul>
99 <li><i className="fas fa-tachometer-alt"></i> Amélioration significative des performances</li>
100 <li><i className="fas fa-database"></i> Augmentation de l'espace de stockage disponible</li>
101 <li><i className="fas fa-clock"></i> Réduction des temps de chargement</li>
102 <li><i className="fas fa-heartbeat"></i> Prolongation de la durée de vie de votre ordinateur</li>
135 return (
136 <div className="service-page">
137 <h1><i className="fas fa-database"></i> Sauvegarde & Récupération</h1>
138 <BackupSVG />
139 <p>Notre service de sauvegarde et récupération vous aide à protéger vos données importantes et à les récupérer en cas de problÚme.</p>
307 { id: 2, name: "Nettoyage & Optimisation", icon: "fas fa-broom", description: "Accélérez votre ordinateur" },
308 { id: 3, name: "Réparation Matérielle", icon: "fas fa-tools", description: "Réparation de tous composants" },
309 { id: 4, name: "Sauvegarde & Récupération", icon: "fas fa-database", description: "Protégez vos données" },
310 { id: 5, name: "Installation Logicielle", icon: "fas fa-download", description: "Configuration personnalisée" },
311 { id: 6, name: "Support à Distance", icon: "fas fa-globe", description: "Assistance en ligne immédiate" }
98 <ul>
99 <li><i className="fas fa-tachometer-alt"></i> Amélioration significative des performances</li>
100 <li><i className="fas fa-database"></i> Augmentation de l'espace de stockage disponible</li>
101 <li><i className="fas fa-clock"></i> Réduction des temps de chargement</li>
102 <li><i className="fas fa-heartbeat"></i> Prolongation de la durée de vie de votre ordinateur</li>
135 return (
136 <div className="service-page">
137 <h1><i className="fas fa-database"></i> Sauvegarde & Récupération</h1>
138 <BackupSVG />
139 <p>Notre service de sauvegarde et récupération vous aide à protéger vos données importantes et à les récupérer en cas de problÚme.</p>
307 { id: 2, name: "Nettoyage & Optimisation", icon: "fas fa-broom", description: "Accélérez votre ordinateur" },
308 { id: 3, name: "Réparation Matérielle", icon: "fas fa-tools", description: "Réparation de tous composants" },
309 { id: 4, name: "Sauvegarde & Récupération", icon: "fas fa-database", description: "Protégez vos données" },
310 { id: 5, name: "Installation Logicielle", icon: "fas fa-download", description: "Configuration personnalisée" },
311 { id: 6, name: "Support à Distance", icon: "fas fa-globe", description: "Assistance en ligne immédiate" }
30- [ ] add triggers to sidebar
31- [ ] add upload from SQL, CSV and JSON
32- [ ] add ability to connect to a non-val town Turso database
33- [x] fix wonky sidebar separator height problem (thanks to @stevekrouse)
34- [x] make result tables scrollable
1import { Pool } from "https://deno.land/x/postgres@v0.17.0/mod.ts";
2
3// Get the connection string from the environment variable "DATABASE_URL"
4const databaseUrl = Deno.env.get("DATABASE_URL")!;
5
6// Create a database pool with three connections that are lazily established
7const pool = new Pool(databaseUrl, 3, true);
8
9// Connect to the database
10const connection = await pool.connect();
11
5/**
6 * Every Val Town account comes with its own private
7 * [SQLite database](https://www.sqlite.org/) that
8 * is accessible from any of your vals.
9 * ([Docs â](https://docs.val.town/std/sqlite))
115
116// adapted from
117// https://github.com/tursodatabase/libsql-client-ts/blob/17dd996b840c950dd22b871adfe4ba0eb4a5ead3/packages/libsql-client/src/sqlite3.ts#L314C1-L337C2
118function rowFromSql(
119 sqlRow: Array<unknown>,