taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 055685e78528aaf6b57ce70c4cc0221f5c0f37a3
parent 644ad4e9bb5e7bbd3e74b842e45ef6056996b03b
Author: Florian Dold <florian.dold@gmail.com>
Date:   Mon, 24 Feb 2020 22:38:07 +0530

fall back to synchronous workers on old nodejs

Diffstat:
Mpackage.json | 2+-
Msrc/headless/helpers.ts | 16+++++++++++-----
2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/package.json b/package.json @@ -1,6 +1,6 @@ { "name": "taler-wallet", - "version": "0.6.8", + "version": "0.6.9", "description": "", "main": "dist/node/index.js", "repository": { diff --git 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); }