2import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
3import React, { useCallback, useRef, useState } from "https://esm.sh/react@18.2.0";
4import { DATABASE_TABLENAME } from "./constants";
5
6function App() {
179 // const KEY = new URL(import.meta.url).pathname.split("/").at(-1);
180 await sqlite.execute(`
181 CREATE TABLE IF NOT EXISTS ${DATABASE_TABLENAME} (
182 id INTEGER PRIMARY KEY AUTOINCREMENT,
183 type TEXT NOT NULL,
203 // Save metadata to SQLite
204 await sqlite.execute(
205 `INSERT INTO ${DATABASE_TABLENAME} (type, path) VALUES (?, ?)`,
206 [imageType, publicUrl],
207 );
1import type { CompiledQuery, DatabaseConnection, Dialect, QueryResult, Selectable } from 'npm:kysely';
2import { Kysely } from 'npm:kysely';
3import { DummyDriver, SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler } from 'npm:kysely';
6import { db as restdriver } from 'https://esm.town/v/sqlite/db';
7
8interface Database {
9 vals: ValsTable;
10}
23
24class VTDriver extends DummyDriver {
25 async acquireConnection(): Promise<DatabaseConnection> {
26 return new VTConnection();
27 }
28}
29class VTConnection implements DatabaseConnection {
30 async executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>> {
31 const formattedQuery = SqlString.format(compiledQuery.sql, compiledQuery.parameters);
47};
48
49export const vtdb = new Kysely<Database>({ dialect });
50export default vtdb;
1# Val Town Database
2
3This val exports `vtdb`, a correctly typed **Kysely** instance
4to query the [@sqlite.db](https://www.val.town/v/sqlite/db) database containing public vals.
5
6Example usage:
1import { blob } from "https://esm.town/v/std/blob";
2import { sqlite } from "https://esm.town/v/stevekrouse/sqlite";
3import { DATABASE_TABLENAME } from "./constants";
4
5// export const manager = {
14 `
15 SELECT path
16 FROM ${DATABASE_TABLENAME}
17 WHERE type = ?
18 ORDER BY RANDOM()
1export const DATABASE_TABLENAME = "VALENTINES_DAY_CARD_IMGS";
4
5The directory is a simple
6database of Date Me Docs. Date Me Docs are long-form, earnest dating profiles for romantic partners.
7[Learn more here](https://dateme.directory/faq).
8
9## Todos
10
11- [ ] Make the SQLite database forkable and build a widget/workflow for that, ie fix @stevekrouse/dateme_sqlite
12- [ ] Require an email (that isn't shared publicly)
13 - [ ] Verify the email address with a "magic link"
1import { blob } from "https://esm.town/v/std/blob";
2import { sqlite } from "https://esm.town/v/stevekrouse/sqlite";
3import { DATABASE_TABLENAME } from "./constants";
4
5// export const manager = {
14 `
15 SELECT path
16 FROM ${DATABASE_TABLENAME}
17 WHERE type = ?
18 ORDER BY RANDOM()
2import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
3import React, { useCallback, useRef, useState } from "https://esm.sh/react@18.2.0";
4import { DATABASE_TABLENAME } from "./constants";
5
6function App() {
179 // const KEY = new URL(import.meta.url).pathname.split("/").at(-1);
180 await sqlite.execute(`
181 CREATE TABLE IF NOT EXISTS ${DATABASE_TABLENAME} (
182 id INTEGER PRIMARY KEY AUTOINCREMENT,
183 type TEXT NOT NULL,
203 // Save metadata to SQLite
204 await sqlite.execute(
205 `INSERT INTO ${DATABASE_TABLENAME} (type, path) VALUES (?, ?)`,
206 [imageType, filename],
207 );
1export const DATABASE_TABLENAME = "VALENTINES_DAY_CARD_IMGS";
497 const KEY = "windsurf_projectContext";
498
499 // Initialize database
500 await sqlite.execute(`
501 CREATE TABLE IF NOT EXISTS ${KEY}_project_state_${SCHEMA_VERSION} (