forked from socketstream/socketstream
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmisc.js
34 lines (31 loc) · 960 Bytes
/
misc.js
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
34
// Adapted from http://www.broofa.com/Tools/Math.uuid.js
exports.randomString = function (len) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var uuid = [];
radix = chars.length;
for (var i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
return uuid.join('');
};
// Parse incoming websocket messages into message type and contents
exports.parseWsMessage = function (msg) {
var i;
if ((i = msg.indexOf('|')) > 0) {
return [msg.substr(0, i), msg.substr(i+1)];
} else {
throw new Error('Invalid message');
}
};
// Taken from underscore.js
exports.extend = function (obj) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var prop in source) {
obj[prop] = source[prop];
}
}
return obj;
};
// Useful for declaring default parameter
exports.defaults = function (args, defaults) {
return exports.extend({}, defaults, args);
};