@react-native-replicache/react-native-expo-sqlite
Version:
> Plug-in React Native compatibility bindings for [Replicache](https://replicache.dev/).
23 lines • 960 B
JavaScript
import { getCreateReplicacheSQLiteKVStore, ReplicacheGenericSQLiteDatabaseManager } from "@react-native-replicache/replicache-generic-sqlite";
import * as SQLite from "expo-sqlite";
import { ReplicacheExpoSQLiteTransaction } from "./replicache-expo-sqlite-transaction";
const genericDatabase = {
open: async name => {
const db = await SQLite.openDatabaseAsync(name);
const genericDb = {
transaction: () => new ReplicacheExpoSQLiteTransaction(db),
destroy: async () => {
await db.closeAsync();
await SQLite.deleteDatabaseAsync(name);
},
close: async () => await db.closeAsync()
};
return genericDb;
}
};
const expoDbManagerInstance = new ReplicacheGenericSQLiteDatabaseManager(genericDatabase);
export const createReplicacheExpoSQLiteKVStore = {
create: getCreateReplicacheSQLiteKVStore(expoDbManagerInstance),
drop: name => expoDbManagerInstance.destroy(name)
};
//# sourceMappingURL=index.js.map