equal
deleted
inserted
replaced
|
1 var fs = require("fs"); |
|
2 |
|
3 XMLHttpRequest = function() { |
|
4 var self = this, |
|
5 info = self._info = {}, |
|
6 headers = {}, |
|
7 url; |
|
8 |
|
9 // TODO handle file system errors? |
|
10 |
|
11 self.open = function(m, u, a) { |
|
12 info.url = u; |
|
13 info.async = a; |
|
14 Object.freeze(info); |
|
15 self.send = a ? read : readSync; |
|
16 }; |
|
17 |
|
18 self.overrideMimeType = function(x) { |
|
19 info.mimeType = x; |
|
20 }; |
|
21 |
|
22 function read() { |
|
23 fs.readFile(info.url, "binary", function(e, d) { |
|
24 if (e) { |
|
25 self.status = 404; // assumed |
|
26 } else { |
|
27 self.status = 200; |
|
28 self.responseText = d; |
|
29 self.responseXML = {_xml: d}; |
|
30 headers["Content-Length"] = d.length; |
|
31 } |
|
32 self.readyState = 4; |
|
33 XMLHttpRequest._last = self; |
|
34 if (self.onreadystatechange) self.onreadystatechange(); |
|
35 }); |
|
36 } |
|
37 |
|
38 function readSync() { |
|
39 try { |
|
40 var d = fs.readFileSync(info.url, "binary"); |
|
41 self.status = 200; |
|
42 self.responseText = d; |
|
43 self.responseXML = {_xml: d}; |
|
44 headers["Content-Length"] = d.length; |
|
45 } catch (e) { |
|
46 self.status = 404; // assumed |
|
47 } |
|
48 self.readyState = 4; |
|
49 XMLHttpRequest._last = self; |
|
50 if (self.onreadystatechange) self.onreadystatechange(); |
|
51 } |
|
52 |
|
53 self.getResponseHeader = function(n) { |
|
54 return headers[n]; |
|
55 }; |
|
56 }; |