source: trip-planner-front/node_modules/sockjs/lib/utils.js@ b738035

Last change on this file since b738035 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 3.9 KB
RevLine 
[6a3a178]1// Generated by CoffeeScript 1.12.7
2(function() {
3 var array_intersection, crypto, escapable, lookup, unroll_lookup;
4
5 crypto = require('crypto');
6
7 exports.array_intersection = array_intersection = function(arr_a, arr_b) {
8 var a, j, len, r;
9 r = [];
10 for (j = 0, len = arr_a.length; j < len; j++) {
11 a = arr_a[j];
12 if (arr_b.indexOf(a) !== -1) {
13 r.push(a);
14 }
15 }
16 return r;
17 };
18
19 exports.escape_selected = function(str, chars) {
20 var c, i, j, l, len, map, parts, r, ref, v;
21 map = {};
22 chars = '%' + chars;
23 for (j = 0, len = chars.length; j < len; j++) {
24 c = chars[j];
25 map[c] = escape(c);
26 }
27 r = new RegExp('([' + chars + '])');
28 parts = str.split(r);
29 for (i = l = 0, ref = parts.length; 0 <= ref ? l < ref : l > ref; i = 0 <= ref ? ++l : --l) {
30 v = parts[i];
31 if (v.length === 1 && v in map) {
32 parts[i] = map[v];
33 }
34 }
35 return parts.join('');
36 };
37
38 exports.buffer_concat = function(buf_a, buf_b) {
39 var dst;
40 dst = new Buffer(buf_a.length + buf_b.length);
41 buf_a.copy(dst);
42 buf_b.copy(dst, buf_a.length);
43 return dst;
44 };
45
46 exports.md5_hex = function(data) {
47 return crypto.createHash('md5').update(data).digest('hex');
48 };
49
50 exports.sha1_base64 = function(data) {
51 return crypto.createHash('sha1').update(data).digest('base64');
52 };
53
54 exports.timeout_chain = function(arr) {
55 var fun, ref, timeout, user_fun;
56 arr = arr.slice(0);
57 if (!arr.length) {
58 return;
59 }
60 ref = arr.shift(), timeout = ref[0], user_fun = ref[1];
61 fun = (function(_this) {
62 return function() {
63 user_fun();
64 return exports.timeout_chain(arr);
65 };
66 })(this);
67 return setTimeout(fun, timeout);
68 };
69
70 exports.objectExtend = function(dst, src) {
71 var k;
72 for (k in src) {
73 if (src.hasOwnProperty(k)) {
74 dst[k] = src[k];
75 }
76 }
77 return dst;
78 };
79
80 exports.overshadowListeners = function(ee, event, handler) {
81 var new_handler, old_listeners;
82 old_listeners = ee.listeners(event).slice(0);
83 ee.removeAllListeners(event);
84 new_handler = function() {
85 var j, len, listener;
86 if (handler.apply(this, arguments) !== true) {
87 for (j = 0, len = old_listeners.length; j < len; j++) {
88 listener = old_listeners[j];
89 listener.apply(this, arguments);
90 }
91 return false;
92 }
93 return true;
94 };
95 return ee.addListener(event, new_handler);
96 };
97
98 escapable = /[\x00-\x1f\ud800-\udfff\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufff0-\uffff]/g;
99
100 unroll_lookup = function(escapable) {
101 var c, i, unrolled;
102 unrolled = {};
103 c = (function() {
104 var j, results;
105 results = [];
106 for (i = j = 0; j < 65536; i = ++j) {
107 results.push(String.fromCharCode(i));
108 }
109 return results;
110 })();
111 escapable.lastIndex = 0;
112 c.join('').replace(escapable, function(a) {
113 return unrolled[a] = '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
114 });
115 return unrolled;
116 };
117
118 lookup = unroll_lookup(escapable);
119
120 exports.quote = function(string) {
121 var quoted;
122 quoted = JSON.stringify(string);
123 escapable.lastIndex = 0;
124 if (!escapable.test(quoted)) {
125 return quoted;
126 }
127 return quoted.replace(escapable, function(a) {
128 return lookup[a];
129 });
130 };
131
132 exports.parseCookie = function(cookie_header) {
133 var cookie, cookies, j, len, parts, ref;
134 cookies = {};
135 if (cookie_header) {
136 ref = cookie_header.split(';');
137 for (j = 0, len = ref.length; j < len; j++) {
138 cookie = ref[j];
139 parts = cookie.split('=');
140 cookies[parts[0].trim()] = (parts[1] || '').trim();
141 }
142 }
143 return cookies;
144 };
145
146 exports.random32 = function() {
147 var foo, v;
148 foo = crypto.randomBytes(4);
149 v = [foo[0], foo[1], foo[2], foo[3]];
150 return v[0] + (v[1] * 256) + (v[2] * 256 * 256) + (v[3] * 256 * 256 * 256);
151 };
152
153}).call(this);
Note: See TracBrowser for help on using the repository browser.