nodejs: download prebuilt add-on at runtime

This commit is contained in:
shum
2026-10-10 12:27:31 +00:00
parent f9071033c0
commit 6f2fb68b2d
41 changed files with 268 additions and 111 deletions
+2 -1
View File
@@ -15,7 +15,8 @@ export function loadLibrary(backend: Backend): Promise<void> {
if (loading.backend === backend) return loading.promise
return Promise.reject(new Error(`libsimplex already loaded with backend=${loading.backend}; cannot switch to ${backend} in the same process`))
}
const promise = libs.resolveLibsDir(backend).then(dir => simplex.load(libs.libPath(dir)))
const promise = Promise.all([libs.resolveLibsDir(backend), libs.resolveAddonPath()])
.then(([dir, addon]) => simplex.load(addon, libs.libPath(dir)))
loading = {backend, promise}
// a failed download or load can be retried
promise.catch(() => { loading = undefined })