separate node entry points

Signed-off-by: Florian Dold <florian@dold.me>
This commit is contained in:
Florian Dold 2021-08-20 13:01:35 +02:00
parent 45f1346990
commit a3687d84ba
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
5 changed files with 15 additions and 46 deletions

View File

@ -5,8 +5,11 @@
"exports": { "exports": {
".": "./lib/index.js" ".": "./lib/index.js"
}, },
"module": "./lib/index.js", "module": "./lib/index.node.js",
"main": "./lib/index.js", "main": "./lib/index.node.js",
"browser": {
"./lib/index.node.js": "./lib/index.js"
},
"type": "module", "type": "module",
"types": "./lib/index.d.ts", "types": "./lib/index.d.ts",
"typesVersions": { "typesVersions": {

View File

@ -7,27 +7,11 @@ purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies. copyright notice and this permission notice appear in all copies.
*/ */
import { expand } from "./brace-expansion.js"; import { expand } from "./brace-expansion.js";
const nodejs_path = (function () {
let path: typeof import("path");
return function () {
if (!path) {
/**
* need to use an expression when doing a require if we want
* webpack not to find out about the requirement
*/
const _r = "require";
path = module[_r]("path");
}
return path;
};
})();
let path = { sep: "/" }; let path = { sep: "/" };
try { try {
path.sep = nodejs_path().sep; path.sep = require("path").sep;
} catch (er) {} } catch (er) {}
const GLOBSTAR = {}; const GLOBSTAR = {};

View File

@ -0,0 +1,2 @@
export * from "./index.js";
export * from "./talerconfig.js";

View File

@ -11,7 +11,6 @@ export * from "./notifications.js";
export * from "./payto.js"; export * from "./payto.js";
export * from "./ReserveStatus.js"; export * from "./ReserveStatus.js";
export * from "./ReserveTransaction.js"; export * from "./ReserveTransaction.js";
export * from "./talerconfig.js";
export * from "./talerTypes.js"; export * from "./talerTypes.js";
export * from "./taleruri.js"; export * from "./taleruri.js";
export * from "./time.js"; export * from "./time.js";
@ -19,5 +18,4 @@ export * from "./transactionsTypes.js";
export * from "./walletTypes.js"; export * from "./walletTypes.js";
export * from "./i18n.js"; export * from "./i18n.js";
export * from "./logging.js"; export * from "./logging.js";
export * from "./url.js"; export * from "./url.js";
export * from "./globbing/minimatch.js";

View File

@ -36,24 +36,10 @@ import { SynchronousCryptoWorkerFactory } from "../crypto/workers/synchronousWor
import type { IDBFactory } from "@gnu-taler/idb-bridge"; import type { IDBFactory } from "@gnu-taler/idb-bridge";
import { WalletNotification } from "@gnu-taler/taler-util"; import { WalletNotification } from "@gnu-taler/taler-util";
import { Wallet } from "../wallet.js"; import { Wallet } from "../wallet.js";
import * as fs from "fs";
const logger = new Logger("headless/helpers.ts"); 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 { export interface DefaultNodeWalletArgs {
/** /**
* Location of the wallet database. * Location of the wallet database.
@ -101,7 +87,7 @@ export async function getDefaultNodeWallet(
const storagePath = args.persistentStoragePath; const storagePath = args.persistentStoragePath;
if (storagePath) { if (storagePath) {
try { try {
const dbContentStr: string = nodejs_fs().readFileSync(storagePath, { const dbContentStr: string = fs.readFileSync(storagePath, {
encoding: "utf-8", encoding: "utf-8",
}); });
const dbContent = JSON.parse(dbContentStr); const dbContent = JSON.parse(dbContentStr);
@ -124,15 +110,11 @@ export async function getDefaultNodeWallet(
} }
const tmpPath = `${args.persistentStoragePath}-${makeId(5)}.tmp`; const tmpPath = `${args.persistentStoragePath}-${makeId(5)}.tmp`;
const dbContent = myBackend.exportDump(); const dbContent = myBackend.exportDump();
nodejs_fs().writeFileSync( fs.writeFileSync(tmpPath, JSON.stringify(dbContent, undefined, 2), {
tmpPath, encoding: "utf-8",
JSON.stringify(dbContent, undefined, 2), });
{
encoding: "utf-8",
},
);
// Atomically move the temporary file onto the DB path. // Atomically move the temporary file onto the DB path.
nodejs_fs().renameSync(tmpPath, args.persistentStoragePath); fs.renameSync(tmpPath, args.persistentStoragePath);
}; };
} }