/
45case
/
ptable
Обзор
Документация
Войти
/
45case
/
ptable
Код
Запросы
3
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
dev
electron/ipc.ts
47 строк
1 KB
Olya
feat: добавить sql.js (SQLite WASM), IPC-обработчики и универсальный поиск
09 июл 2026, 11:06
09 июл 2026, 11:06
e0492bf
Код
Авторство
О чём код?
import { ipcMain } from "electron"; import { getDb } from "./database"; export function registerIpcHandlers() { ipcMain.handle("elements:search", (_event, query: string) => { const db = getDb(); const stmt = db.prepare(` SELECT * FROM elements WHERE name LIKE ? OR nameEn LIKE ? OR symbol LIKE ? OR slug LIKE ? LIMIT 20 `); const q = `%${query}%`; stmt.bind([q, q, q, q]); const results: Record<string, unknown>[] = []; while (stmt.step()) { results.push(stmt.getAsObject()); } stmt.free(); return results; }); ipcMain.handle("elements:getBySlug", (_event, slug: string) => { const db = getDb(); const stmt = db.prepare("SELECT * FROM elements WHERE slug = ?"); stmt.bind([slug]); if (stmt.step()) { const result = stmt.getAsObject(); stmt.free(); return result; } stmt.free(); return null; }); ipcMain.handle("elements:getByAtomicNumber", (_event, n: number) => { const db = getDb(); const stmt = db.prepare("SELECT * FROM elements WHERE atomicNumber = ?"); stmt.bind([n]); if (stmt.step()) { const result = stmt.getAsObject(); stmt.free(); return result; } stmt.free(); return null; }); }