diff options
Diffstat (limited to 'src/headless')
-rw-r--r-- | src/headless/helpers.ts | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/headless/helpers.ts b/src/headless/helpers.ts index 6832cd4f4..a5dad3856 100644 --- a/src/headless/helpers.ts +++ b/src/headless/helpers.ts @@ -34,6 +34,7 @@ import { WalletNotification, NotificationType } from "../types/notifications"; import { Database } from "../util/query"; import { NodeHttpLib } from "./NodeHttpLib"; import { Logger } from "../util/logging"; +import { SynchronousCryptoWorkerFactory } from "../crypto/workers/synchronousWorker"; const logger = new Logger("helpers.ts"); @@ -113,14 +114,19 @@ export async function getDefaultNodeWallet( const myDb = await openTalerDatabase(myIdbFactory, myVersionChange); - //const worker = new SynchronousCryptoWorkerFactory(); - //const worker = new NodeCryptoWorkerFactory(); - - const worker = new NodeThreadCryptoWorkerFactory(); + let workerFactory; + try { + // Try if we have worker threads available, fails in older node versions. + require("worker_threads") + workerFactory = new NodeThreadCryptoWorkerFactory(); + } catch (e) { + console.log("worker threads not available, falling back to synchronous workers"); + workerFactory = new SynchronousCryptoWorkerFactory(); + } const dbWrap = new Database(myDb); - const w = new Wallet(dbWrap, myHttpLib, worker); + const w = new Wallet(dbWrap, myHttpLib, workerFactory); if (args.notifyHandler) { w.addNotificationListener(args.notifyHandler); } |