@livestore/sqlite-wasm
Version:
42 lines • 1.49 kB
TypeScript
import { type MakeSqliteDb, type PersistenceInfo, type SqliteDb } from '@livestore/common';
import { Effect, FileSystem } from '@livestore/utils/effect';
import type { MemoryVFS } from '@livestore/wa-sqlite/src/examples/MemoryVFS.js';
import { NodeFS } from './NodeFS.js';
export type NodeDatabaseMetadataInMemory = {
_tag: 'in-memory';
vfs: MemoryVFS;
dbPointer: number;
persistenceInfo: PersistenceInfo;
deleteDb: () => void;
configureDb: (db: SqliteDb) => void;
};
export type NodeDatabaseMetadataFs = {
_tag: 'fs';
vfs: NodeFS;
dbPointer: number;
persistenceInfo: PersistenceInfo<{
directory: string;
}>;
deleteDb: () => void;
configureDb: (db: SqliteDb) => void;
};
export type NodeDatabaseMetadata = NodeDatabaseMetadataInMemory | NodeDatabaseMetadataFs;
export type NodeDatabaseInputInMemory = {
_tag: 'in-memory';
configureDb?: (db: SqliteDb) => void;
};
export type NodeDatabaseInputFs = {
_tag: 'fs';
directory: string;
fileName: string;
configureDb?: (db: SqliteDb) => void;
};
export type NodeDatabaseInput = NodeDatabaseInputInMemory | NodeDatabaseInputFs;
export type MakeNodeSqliteDb = MakeSqliteDb<{
dbPointer: number;
persistenceInfo: PersistenceInfo;
}, NodeDatabaseInput, NodeDatabaseMetadata>;
export declare const sqliteDbFactory: ({ sqlite3, }: {
sqlite3: SQLiteAPI;
}) => Effect.Effect<MakeNodeSqliteDb, never, FileSystem.FileSystem>;
//# sourceMappingURL=mod.d.ts.map