aboutsummaryrefslogtreecommitdiff
path: root/javascript/olm_pre.js
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/olm_pre.js')
-rw-r--r--javascript/olm_pre.js30
1 files changed, 29 insertions, 1 deletions
diff --git a/javascript/olm_pre.js b/javascript/olm_pre.js
index c7b0d5e..5a348af 100644
--- a/javascript/olm_pre.js
+++ b/javascript/olm_pre.js
@@ -1 +1,29 @@
-Olm = function() {
+var olm_exports = {};
+var get_random_values;
+if (typeof(window) !== 'undefined') {
+ // We've been imported directly into a browser.
+ window["Olm"] = olm_exports;
+ get_random_values = function(buf) {
+ window.crypto.getRandomValues(buf);
+ };
+} else if (global.window) {
+ // We're running with browserify
+ global.window["Olm"] = olm_exports;
+ get_random_values = function(buf) {
+ window.crypto.getRandomValues(buf);
+ };
+} else if (module["exports"]) {
+ // We're running in node.
+ module["exports"] = olm_exports;
+ var nodeCrypto = require("crypto");
+ get_random_values = function(buf) {
+ var bytes = nodeCrypto.randomBytes(buf.length);
+ buf.set(bytes);
+ }
+} else {
+ throw new Error("Cannot find global to attach library to");
+}
+
+var init = function() {
+ var module; // Shadow the Node 'module' object so that emscripten won't try
+ // to fiddle with it.