Skip to content

Commit 21d3246

Browse files
author
Curry
committed
fix: load optional pglite vector extension dynamically
1 parent 3363cb2 commit 21d3246

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

mcp-server/bundle.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40552,6 +40552,7 @@ CREATE INDEX IF NOT EXISTS chunks_slug_idx
4055240552
`;
4055340553

4055440554
// dist/adapters/vaultbrain/pglite-engine.js
40555+
var dynamicImport = new Function("specifier", "return import(specifier)");
4055540556
var PGliteEngine = class {
4055640557
dataDir;
4055740558
db = null;
@@ -40560,9 +40561,10 @@ var PGliteEngine = class {
4056040561
}
4056140562
async connect() {
4056240563
const { PGlite } = await import("@electric-sql/pglite");
40563-
const { vector } = await import("@electric-sql/pglite/vector");
40564+
const { vector } = await dynamicImport("@electric-sql/pglite/vector");
4056440565
const { pg_trgm } = await import("@electric-sql/pglite/contrib/pg_trgm");
40565-
this.db = new PGlite(this.dataDir, { extensions: { vector, pg_trgm } });
40566+
const vectorExtension = vector;
40567+
this.db = new PGlite(this.dataDir, { extensions: { vector: vectorExtension, pg_trgm } });
4056640568
await this.db.waitReady;
4056740569
}
4056840570
async disconnect() {

mcp-server/src/adapters/vaultbrain/pglite-engine.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ type PGliteDB = {
1414
waitReady: Promise<void>;
1515
};
1616

17+
const dynamicImport = new Function(
18+
"specifier",
19+
"return import(specifier)",
20+
) as (specifier: string) => Promise<Record<string, unknown>>;
21+
1722
export class PGliteEngine implements VaultBrainEngine {
1823
private db: PGliteDB | null = null;
1924

@@ -22,10 +27,11 @@ export class PGliteEngine implements VaultBrainEngine {
2227
async connect(): Promise<void> {
2328
// Dynamic import so loading failure (missing wasm, etc.) is catchable at call-site
2429
const { PGlite } = await import("@electric-sql/pglite");
25-
const { vector } = await import("@electric-sql/pglite/vector");
30+
const { vector } = await dynamicImport("@electric-sql/pglite/vector");
2631
const { pg_trgm } = await import("@electric-sql/pglite/contrib/pg_trgm");
32+
const vectorExtension = vector as typeof pg_trgm;
2733

28-
this.db = new PGlite(this.dataDir, { extensions: { vector, pg_trgm } }) as unknown as PGliteDB;
34+
this.db = new PGlite(this.dataDir, { extensions: { vector: vectorExtension, pg_trgm } }) as unknown as PGliteDB;
2935
await this.db.waitReady;
3036
}
3137

0 commit comments

Comments
 (0)