import './style.css'; import * as sqlite from 'wa-sqlite'; import SQLiteESMFactory from 'wa-sqlite/dist/wa-sqlite.mjs'; import { SyncPanel } from './sync-panel'; // Смоук-тест: запускаем SQLite (сборка wa-sqlite) в памяти. // Запись и чтение БД идут через OPFS (src/storage.ts); подключение // SQLite к файлу из OPFS сделаем при работе с самими карточками. const sqliteStatus = document.querySelector('#sqlite-status'); async function initSqlite(): Promise { try { // 1. Загрузчик сам скачивает wa-sqlite.wasm (рядом с wa-sqlite.mjs). const module = await SQLiteESMFactory(); // 2. Оборачиваем Emscripten-модуль в JS API. const sqlite3 = sqlite.Factory(module); // 3. Открываем базу в памяти и выполняем запрос. const db = await sqlite3.open_v2(':memory:'); let result = 'нет данных'; await sqlite3.exec(db, "SELECT 'Привет, мир!'", (row) => { result = String(row[0]); }); await sqlite3.close(db); if (sqliteStatus) sqliteStatus.textContent = `SQLite работает: ${result}`; } catch (error) { if (sqliteStatus) sqliteStatus.textContent = `SQLite: ошибка инициализации — ${error}`; console.error(error); } } // Главный экран: токен сохранения + кнопки «Скачать» / «Выгрузить». // HTTP-обвязка появится на следующем шаге. const syncPanel = new SyncPanel(document); syncPanel.init(); void initSqlite();