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>,
1# Get a DuckDB database
2
3This method sets up a [duckdb-wasm](https://github.com/duckdb/duckdb-wasm) database that you can then use to store and retrieve data.
1# Uptime Checker & Status Page
2
3This is a free, hackable uptime/downtime monitor that sends you an email when the site doesn't return a 200. It also stores historical uptime and latency data in your Val Town SQLite, which is used to power a status page. It supports multiple URLs in the same database and status page.
4
5## Installation
65 const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
66 const KEY = "usefulGreenPenguin";
67 const SCHEMA_VERSION = 4; // Increment to reset database
68
69 // Create necessary tables