diff options
author | David Baker <dave@matrix.org> | 2018-09-25 17:13:29 +0100 |
---|---|---|
committer | David Baker <dave@matrix.org> | 2018-09-25 17:13:29 +0100 |
commit | 263b94428a24caaa5b899ed7f73b896620e6cdf4 (patch) | |
tree | dacfa7322ee472d9a09e4bd56805bae0aad215c9 /javascript/olm_post.js | |
parent | f29d8cdd7bf1faf8294f51624c633fb05c9a0e2f (diff) |
Another day, another interface
Change the interface again, hopefully this time a bit more normal.
Now we wrap the emscripten module completely and just expose the
high level objects.
The olm library export is now imported as normal (ie. returns
a module rather than a function returning a module) but has an
`init` method which *must* be called. This returns a promise
which resolves when the module is ready. It also rejects if the
module failed to set up, unlike before (and unlike the
promise-not-a-promise that emscripten returns).
Generally catch failures to init the module.
Diffstat (limited to 'javascript/olm_post.js')
-rw-r--r-- | javascript/olm_post.js | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/javascript/olm_post.js b/javascript/olm_post.js index 071021c..9e0294a 100644 --- a/javascript/olm_post.js +++ b/javascript/olm_post.js @@ -464,27 +464,11 @@ olm_exports["get_library_version"] = restore_stack(function() { ]; }); -// export the olm functions into the environment. -// -// make sure that we do this *after* populating olm_exports, so that we don't -// get a half-built window.Olm if there is an exception. - -if (typeof module !== 'undefined' && module.exports) { - // node / browserify - for (var olm_export in olm_exports) { - if (olm_exports.hasOwnProperty(olm_export)) { - Module[olm_export] = olm_exports[olm_export]; - } - } -} - -if (typeof(window) !== 'undefined') { - // We've been imported directly into a browser. Define the global 'Olm' object. - // (we do this even if module.exports was defined, because it's useful to have - // Olm in the global scope for browserified and webpacked apps.) - window["Olm"] = olm_exports; -} - -Module.then(function() { +Module['onRuntimeInitialized'] = function() { OLM_ERROR = Module['_olm_error'](); -}); + if (onInitSuccess) onInitSuccess(); +}; + +Module['onAbort'] = function(err) { + if (onInitFail) onInitFail(err); +}; |