18 lines
602 B
TypeScript
18 lines
602 B
TypeScript
import { PGlite } from '@electric-sql/pglite';
|
|
import { vector } from '@electric-sql/pglite/vector';
|
|
import { drizzle } from 'drizzle-orm/pglite';
|
|
import * as schema from './schema.js';
|
|
import type { DbHandle } from './client.js';
|
|
|
|
export function createPgliteDb(dataDir: string): DbHandle {
|
|
// pgvector extension is required by migration 0001 (insights.embedding column).
|
|
const client = new PGlite(dataDir, { extensions: { vector } });
|
|
const db = drizzle(client, { schema });
|
|
return {
|
|
db: db as unknown as DbHandle['db'],
|
|
close: async () => {
|
|
await client.close();
|
|
},
|
|
};
|
|
}
|