aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/emscLoader.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-09-20 21:11:09 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-09-20 21:11:09 +0200
commit74fe752ea0bd8b0c25a0db15bbc56b1753bb3a11 (patch)
treef4090ae17cf8c7695cad9da9d3742818c4bfe61e /src/crypto/emscLoader.js
parent1751ecb163d28da20863d463e4f21322ad1cb9ff (diff)
not working
Diffstat (limited to 'src/crypto/emscLoader.js')
-rw-r--r--src/crypto/emscLoader.js29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/crypto/emscLoader.js b/src/crypto/emscLoader.js
index ed8662818..7251a5984 100644
--- a/src/crypto/emscLoader.js
+++ b/src/crypto/emscLoader.js
@@ -24,6 +24,8 @@
* the right way to load the library.
*/
+let cachedLib = undefined;
+
/**
* Load the taler emscripten lib.
*
@@ -31,6 +33,11 @@
* be globally available. Inside node, require is used.
*/
export function getLib() {
+ console.log("in getLib");
+ if (cachedLib) {
+ console.log("lib is cached");
+ return Promise.resolve({ lib: cachedLib });
+ }
if (typeof require !== "undefined") {
// Make sure that TypeScript doesn't try
// to check the taler-emscripten-lib.
@@ -45,7 +52,8 @@ export function getLib() {
const lib = indirectRequire("../../../emscripten/taler-emscripten-lib.js");
g.importScripts = savedImportScripts;
if (lib) {
- return lib;
+ cachedLib = lib;
+ return Promise.resolve({ lib: cachedLib });
}
// When we're running as a webpack bundle, the above require might
// have failed and returned 'undefined', so we try other ways to import.
@@ -57,7 +65,22 @@ export function getLib() {
if (!self.TalerEmscriptenLib) {
throw Error("can't import taler emscripten lib");
}
- return self.TalerEmscriptenLib
+ const locateFile = (path, scriptDir) => {
+ console.log("locating file", "path", path, "scriptDir", scriptDir);
+ // This is quite hacky and assumes that our scriptDir is dist/
+ return scriptDir + "../emscripten/" + path;
+ };
+ console.log("instantiating TalerEmscriptenLib");
+ //const lib = self.TalerEmscriptenLib({ locateFile });
+ const lib = self.TalerEmscriptenLib;
+ cachedLib = lib;
+ return Promise.resolve({ lib: lib });
+ //return new Promise((resolve, reject) => {
+ // lib.then(mod => {
+ // console.log("emscripten module fully loaded");
+ // resolve({ lib: mod });
+ // });
+ //});
}
// Last resort, we don't have require, we're not running in a webworker.
@@ -66,7 +89,7 @@ export function getLib() {
if (typeof window !== "undefined") {
if (window.TalerEmscriptenLib) {
- return TalerEmscriptenLib;
+ return Promise.resolve(TalerEmscriptenLib);
}
throw Error("Looks like running in browser, but TalerEmscriptenLib is not defined");
}