load wasm binary for akono
This commit is contained in:
parent
0049a240e7
commit
8f5b6ffd7d
@ -57,22 +57,39 @@ export class SynchronousCryptoWorker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private getEmscriptenEnvironment(): Promise<EmscEnvironment> {
|
private async getWasmBinary(): Promise<Uint8Array> {
|
||||||
|
// @ts-ignore
|
||||||
|
const akonoGetData = global.__akono_getData;
|
||||||
|
if (akonoGetData) {
|
||||||
|
// We're running embedded node on Android
|
||||||
|
console.log("reading wasm binary from akono");
|
||||||
|
const data = akonoGetData("taler-emscripten-lib.wasm");
|
||||||
|
// The data we get is base64-encoded binary data
|
||||||
|
let buf = new Buffer(data, 'base64');
|
||||||
|
return new Uint8Array(buf);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// We're in a normal node environment
|
||||||
|
const binaryPath = __dirname + "/../../../emscripten/taler-emscripten-lib.wasm";
|
||||||
|
console.log("reading from", binaryPath);
|
||||||
|
const wasmBinary = new Uint8Array(fs.readFileSync(binaryPath));
|
||||||
|
return wasmBinary;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private async getEmscriptenEnvironment(): Promise<EmscEnvironment> {
|
||||||
if (this.cachedEmscEnvironment) {
|
if (this.cachedEmscEnvironment) {
|
||||||
return Promise.resolve(this.cachedEmscEnvironment);
|
return this.cachedEmscEnvironment;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.cachedEmscEnvironmentPromise) {
|
if (this.cachedEmscEnvironmentPromise) {
|
||||||
return this.cachedEmscEnvironmentPromise;
|
return this.cachedEmscEnvironmentPromise;
|
||||||
}
|
}
|
||||||
|
|
||||||
const binaryPath =
|
|
||||||
__dirname + "/../../../emscripten/taler-emscripten-lib.wasm";
|
|
||||||
console.log("reading from", binaryPath);
|
|
||||||
const wasmBinary = new Uint8Array(fs.readFileSync(binaryPath));
|
|
||||||
|
|
||||||
let lib: any;
|
let lib: any;
|
||||||
|
|
||||||
|
const wasmBinary = await this.getWasmBinary();
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
// Arguments passed to the emscripten prelude
|
// Arguments passed to the emscripten prelude
|
||||||
const libArgs = {
|
const libArgs = {
|
||||||
|
Loading…
Reference in New Issue
Block a user