UNPKG

supastash

Version:

Offline-first sync engine for Supabase in React Native using SQLite

35 lines (34 loc) 1.4 kB
import { logWarn } from "../../utils/logs"; export const SQLiteAdapterNitro = { async openDatabaseAsync(name, sqliteClient) { //Enable simple null handling for Nitro SQLite const nitro = require("react-native-nitro-sqlite"); if (nitro?.enableSimpleNullHandling) { nitro.enableSimpleNullHandling(); } else { logWarn("[Supastash] Simple null handling is not enabled for Nitro SQLite", "Please update your react-native-nitro-sqlite version to 9.1.3 or higher"); } const db = await sqliteClient.open({ name, location: "default" }); return { runAsync: async (sql, params) => { await db.executeAsync(sql, params ?? []); }, execAsync: async (statement) => { await db.executeAsync(statement); }, getAllAsync: async (sql, params) => { const result = await db.executeAsync(sql, params ?? []); const mainResult = result.rows?._array ?? []; return mainResult; }, getFirstAsync: async (sql, params) => { const result = await db.executeAsync(sql, params ?? []); return result.rows?._array?.[0] ?? null; }, closeAsync: async () => { await db.close?.(); }, }; }, };