fix(node) Electron crashes when creating external buffer (#424)

This commit is contained in:
gsilvestrin
2023-08-17 14:47:54 -07:00
committed by GitHub
parent e3061d4cb4
commit 31a12a141d
2 changed files with 29 additions and 2 deletions

View File

@@ -112,7 +112,8 @@ export class Query<T = number[]> {
this._queryVector = this._query as number[]
}
const buffer = await tableSearch.call(this._tbl, this)
const isElectron = this.isElectron()
const buffer = await tableSearch.call(this._tbl, this, isElectron)
const data = tableFromIPC(buffer)
return data.toArray().map((entry: Record<string, unknown>) => {
@@ -127,4 +128,14 @@ export class Query<T = number[]> {
return newObject as unknown as T
})
}
// See https://github.com/electron/electron/issues/2288
private isElectron (): boolean {
try {
// eslint-disable-next-line no-prototype-builtins
return (process?.versions?.hasOwnProperty('electron') || navigator?.userAgent?.toLowerCase()?.includes(' electron'))
} catch (e) {
return false
}
}
}