diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-09-20 21:11:09 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-09-20 21:11:09 +0200 |
commit | 74fe752ea0bd8b0c25a0db15bbc56b1753bb3a11 (patch) | |
tree | f4090ae17cf8c7695cad9da9d3742818c4bfe61e /src/crypto/emscLoader.js | |
parent | 1751ecb163d28da20863d463e4f21322ad1cb9ff (diff) |
not working
Diffstat (limited to 'src/crypto/emscLoader.js')
-rw-r--r-- | src/crypto/emscLoader.js | 29 |
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"); } |