aboutsummaryrefslogtreecommitdiff
path: root/src/headless
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-02-24 22:38:07 +0530
committerFlorian Dold <florian.dold@gmail.com>2020-02-24 22:38:07 +0530
commit055685e78528aaf6b57ce70c4cc0221f5c0f37a3 (patch)
treeddcd42ebaaa439029a74452dabc4159ab3951f52 /src/headless
parent644ad4e9bb5e7bbd3e74b842e45ef6056996b03b (diff)
fall back to synchronous workers on old nodejs
Diffstat (limited to 'src/headless')
-rw-r--r--src/headless/helpers.ts16
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);
}