1# VALL-E-DRAW
2
3LLM code generation for vals, on a canvas! Make apps with a frontend, backend, and database.
4
5* First you need a working version of VALL-E. Follow the steps [here](https://www.val.town/v/janpaul123/VALLE).
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>,
1# VALL-E-DRAW
2
3LLM code generation for vals, on a canvas! Make apps with a frontend, backend, and database.
4
5* First you need a working version of VALL-E. Follow the steps [here](https://www.val.town/v/janpaul123/VALLE).
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>,
1# VALL-E
2
3LLM code generation for vals! Make apps with a frontend, backend, and database.
4
5It's a bit of work to get this running, but it's worth it.
2 * This application helps users write detailed reviews of coffee shops. It fetches coffee shop data
3 * from the OpenStreetMap Nominatim API, allows users to add custom details, and stores the augmented
4 * information in a SQLite database. The app provides a user interface to view, add, and edit coffee shop reviews.
5 *
6 * It uses React for the frontend, the Nominatim API for initial coffee shop data,
10 frontend: ["React", "Vue", "Angular", "Svelte"],
11 backend: ["Node.js", "Python", "Ruby", "Java"],
12 database: ["PostgreSQL", "MongoDB", "MySQL", "SQLite"],
13 hosting: ["AWS", "Google Cloud", "Heroku", "DigitalOcean"],
14};
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
64 });
65
66 // Database Inspection
67 console.log('\nDatabase Inspection:');
68 const tablesResult = await valTownUser.executeSqlite("SELECT name FROM sqlite_master WHERE type='table'");
69 console.log("Tables in the database:");
70 tablesResult.rows.forEach(row => console.log(row[0]));
71
87
88 } catch (error) {
89 console.error('Error fetching user data or inspecting database:', error);
90 }
91}
40### getId()
41Retrieves the user's ID.
42- Use case: Using the user ID for database queries or API calls.
43```ts
44import { valTownUser } from "https://esm.town/v/iamseeley/valTownUser";
265- Use case: Allowing users to remove their vals through your interface.
266
267## SQLite Database Operations
268
269### executeSqlite(statement)
270Executes a SQLite statement.
271- Use case: Running custom queries on the user's database.
272
273### listTables()
274Lists all tables in the user's SQLite database.
275- Use case: Displaying the structure of a user's database.
276
277### getTableSchema(tableName)