aboutsummaryrefslogtreecommitdiff
path: root/javascript/olm_pre.js
blob: 50bf8c204a63ebd69f6df3c26c0110e704d03ddc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var olm_exports = {};
var get_random_values;
var process; // Shadow the process object so that emscripten won't get
             // confused by browserify
if (typeof(global) !== 'undefined' && global["window"]) {
    // We're running with browserify
    module["exports"] = olm_exports;
    global["window"]["Olm"] = olm_exports;
    get_random_values = function(buf) {
        window.crypto.getRandomValues(buf);
    };
} else 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 (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);
    }
    process = global["process"];
} 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.