aboutsummaryrefslogtreecommitdiff
path: root/javascript/olm_post.js
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2018-09-25 17:13:29 +0100
committerDavid Baker <dave@matrix.org>2018-09-25 17:13:29 +0100
commit263b94428a24caaa5b899ed7f73b896620e6cdf4 (patch)
treedacfa7322ee472d9a09e4bd56805bae0aad215c9 /javascript/olm_post.js
parentf29d8cdd7bf1faf8294f51624c633fb05c9a0e2f (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.js30
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);
+};