diff options
Diffstat (limited to 'packages/taler-wallet-core/src/headless')
-rw-r--r-- | packages/taler-wallet-core/src/headless/helpers.ts | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/packages/taler-wallet-core/src/headless/helpers.ts b/packages/taler-wallet-core/src/headless/helpers.ts index 5007a65ac..1ae556b39 100644 --- a/packages/taler-wallet-core/src/headless/helpers.ts +++ b/packages/taler-wallet-core/src/headless/helpers.ts @@ -30,7 +30,6 @@ import { } from "@gnu-taler/idb-bridge"; import { openTalerDatabase } from "../db"; import { HttpRequestLibrary } from "../util/http"; -import fs from "fs"; import { NodeThreadCryptoWorkerFactory } from "../crypto/workers/nodeThreadWorker"; import { NodeHttpLib } from "./NodeHttpLib"; import { Logger } from "../util/logging"; @@ -40,6 +39,21 @@ import { WalletNotification } from "@gnu-taler/taler-util"; const logger = new Logger("headless/helpers.ts"); +const nodejs_fs = (function () { + let fs: typeof import("fs"); + return function() { + if (!fs) { + /** + * need to use an expression when doing a require if we want + * webpack not to find out about the requirement + */ + const _r = "require" + fs = module[_r]("fs") + } + return fs + } +})() + export interface DefaultNodeWalletArgs { /** * Location of the wallet database. @@ -87,7 +101,7 @@ export async function getDefaultNodeWallet( const storagePath = args.persistentStoragePath; if (storagePath) { try { - const dbContentStr: string = fs.readFileSync(storagePath, { + const dbContentStr: string = nodejs_fs().readFileSync(storagePath, { encoding: "utf-8", }); const dbContent = JSON.parse(dbContentStr); @@ -109,11 +123,11 @@ export async function getDefaultNodeWallet( } const tmpPath = `${args.persistentStoragePath}-${makeId(5)}.tmp`; const dbContent = myBackend.exportDump(); - fs.writeFileSync(tmpPath, JSON.stringify(dbContent, undefined, 2), { + nodejs_fs().writeFileSync(tmpPath, JSON.stringify(dbContent, undefined, 2), { encoding: "utf-8", }); // Atomically move the temporary file onto the DB path. - fs.renameSync(tmpPath, args.persistentStoragePath); + nodejs_fs().renameSync(tmpPath, args.persistentStoragePath); }; } @@ -143,7 +157,9 @@ export async function getDefaultNodeWallet( let workerFactory; try { // Try if we have worker threads available, fails in older node versions. - require("worker_threads"); + const _r = "require" + const worker_threads = module[_r]("worker_threads"); + // require("worker_threads"); workerFactory = new NodeThreadCryptoWorkerFactory(); } catch (e) { logger.warn( |