first commit
This commit is contained in:
commit
4646dad2b8
18 files changed
+1971
No files matched your search
+38
@@ -0,0 +1,38 @@
|
||||
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<HTMLParagraphElement>('#sqlite-status');
|
||||
|
||||
async function initSqlite(): Promise<void> {
|
||||
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();
|
||||
Reference in new issue
Block a user