MCPcopy Index your code
hub / github.com/wendux/fly / send

Method send

src/engine-wrapper.js:48–135  ·  view source on GitHub ↗
(arg)

Source from the content-addressed store, hash-verified

46 }
47
48 send(arg) {
49 arg = arg || null;
50 let self = this;
51 if (adapter) {
52 let request = {
53 method: self.method,
54 url: self.responseURL,
55 headers: self.requestHeaders || {},
56 body: arg
57 }
58 util.merge(request, self._options || {})
59 if (request.method === "GET") {
60 request.body = null;
61 }
62 self._changeReadyState(3)
63 let timer;
64 self.timeout = self.timeout || 0;
65 if (self.timeout > 0) {
66 timer = setTimeout(() => {
67 if (self.readyState === 3) {
68 this._call("onloadend");
69 self._changeReadyState(0);
70 self._call("ontimeout");
71
72 }
73 }, self.timeout);
74 }
75 request.timeout = self.timeout;
76 adapter(request, function (response) {
77
78 function getAndDelete(key) {
79 let t = response[key]
80 delete response[key]
81 return t;
82 }
83
84 // If the request has already timeout, return
85 if (self.readyState !== 3) return;
86 clearTimeout(timer)
87
88 // Make sure the type of status is integer
89 self.status = getAndDelete("statusCode") - 0;
90
91 let responseText = getAndDelete("responseText")
92 let statusMessage = getAndDelete("statusMessage")
93
94 // Network error, set the status code 0
95 if (!self.status) {
96 self.statusText = responseText;
97 self._call("onerror", {msg: statusMessage});
98 } else {
99 // Parsing the response headers to array in a object, because
100 // there may be multiple values with the same header name
101 let responseHeaders = getAndDelete("headers")
102 let headers = {};
103 for (let field in responseHeaders) {
104 let value = responseHeaders[field];
105 let key = field.toLowerCase();

Callers 3

makeRequestMethod · 0.80
makeRequestMethod · 0.80
makeRequestFunction · 0.80

Calls 4

_callMethod · 0.95
adapterFunction · 0.85
_changeReadyStateMethod · 0.80
getAndDeleteFunction · 0.50

Tested by

no test coverage detected