mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-15 21:25:55 +00:00
upgrade dojo to 1.8.3 (refs #570)
This commit is contained in:
191
lib/dojo/request/node.js.uncompressed.js
Normal file
191
lib/dojo/request/node.js.uncompressed.js
Normal file
@@ -0,0 +1,191 @@
|
||||
define("dojo/request/node", [
|
||||
'require',
|
||||
'./util',
|
||||
'./handlers',
|
||||
'../errors/RequestTimeoutError',
|
||||
'../node!http',
|
||||
'../node!https',
|
||||
'../node!url',
|
||||
'../node!stream'/*=====,
|
||||
'../request',
|
||||
'../_base/declare' =====*/
|
||||
], function(require, util, handlers, RequestTimeoutError, http, https, URL, stream/*=====, request, declare =====*/){
|
||||
var Stream = stream.Stream,
|
||||
undefined;
|
||||
|
||||
var defaultOptions = {
|
||||
method: 'GET',
|
||||
query: null,
|
||||
data: undefined,
|
||||
headers: {}
|
||||
};
|
||||
function node(url, options){
|
||||
var response = util.parseArgs(url, util.deepCreate(defaultOptions, options), options && options.data instanceof Stream);
|
||||
url = response.url;
|
||||
options = response.options;
|
||||
|
||||
var def = util.deferred(
|
||||
response,
|
||||
function(dfd, response){
|
||||
response.clientRequest.abort();
|
||||
}
|
||||
);
|
||||
|
||||
url = URL.parse(url);
|
||||
|
||||
var reqOptions = response.requestOptions = {
|
||||
hostname: url.hostname,
|
||||
port: url.port,
|
||||
socketPath: options.socketPath,
|
||||
method: options.method,
|
||||
headers: options.headers,
|
||||
agent: options.agent,
|
||||
pfx: options.pfx,
|
||||
key: options.key,
|
||||
passphrase: options.passphrase,
|
||||
cert: options.cert,
|
||||
ca: options.ca,
|
||||
ciphers: options.ciphers,
|
||||
rejectUnauthorized: options.rejectUnauthorized === false ? false : true
|
||||
};
|
||||
if(url.path){
|
||||
reqOptions.path = url.path;
|
||||
}
|
||||
if(options.user || options.password){
|
||||
reqOptions.auth = (options.user||'') + ':' + (options.password||'');
|
||||
}
|
||||
var req = response.clientRequest = (url.protocol === 'https:' ? https : http).request(reqOptions);
|
||||
|
||||
if(options.socketOptions){
|
||||
if('timeout' in options.socketOptions){
|
||||
req.setTimeout(options.socketOptions.timeout);
|
||||
}
|
||||
if('noDelay' in options.socketOptions){
|
||||
req.setNoDelay(options.socketOptions.noDelay);
|
||||
}
|
||||
if('keepAlive' in options.socketOptions){
|
||||
var initialDelay = options.socketOptions.keepAlive;
|
||||
req.setKeepAlive(initialDelay >= 0, initialDelay || 0);
|
||||
}
|
||||
}
|
||||
|
||||
req.on('socket', function(){
|
||||
response.hasSocket = true;
|
||||
def.progress(response);
|
||||
});
|
||||
|
||||
req.on('response', function(clientResponse){
|
||||
response.clientResponse = clientResponse;
|
||||
response.status = clientResponse.statusCode;
|
||||
response.getHeader = function(headerName){
|
||||
return clientResponse.headers[headerName.toLowerCase()] || null;
|
||||
};
|
||||
|
||||
var body = [];
|
||||
clientResponse.on('data', function(chunk){
|
||||
body.push(chunk);
|
||||
|
||||
// TODO: progress updates via the deferred
|
||||
});
|
||||
clientResponse.on('end', function(){
|
||||
if(timeout){
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
response.text = body.join('');
|
||||
handlers(response);
|
||||
def.resolve(response);
|
||||
});
|
||||
});
|
||||
|
||||
req.on('error', def.reject);
|
||||
|
||||
if(options.data){
|
||||
if(typeof options.data === "string"){
|
||||
req.end(options.data);
|
||||
}else{
|
||||
options.data.pipe(req);
|
||||
}
|
||||
}else{
|
||||
req.end();
|
||||
}
|
||||
|
||||
if(options.timeout){
|
||||
var timeout = setTimeout(function(){
|
||||
def.cancel(new RequestTimeoutError(response));
|
||||
}, options.timeout);
|
||||
}
|
||||
|
||||
return def.promise;
|
||||
}
|
||||
|
||||
/*=====
|
||||
node = function(url, options){
|
||||
// summary:
|
||||
// Sends a request using the included http or https interface from node.js
|
||||
// with the given URL and options.
|
||||
// url: String
|
||||
// URL to request
|
||||
// options: dojo/request/node.__Options?
|
||||
// Options for the request.
|
||||
// returns: dojo/request.__Promise
|
||||
};
|
||||
node.__BaseOptions = declare(request.__BaseOptions, {
|
||||
// data: String|Object|Stream?
|
||||
// Data to transfer. This is ignored for GET and DELETE
|
||||
// requests.
|
||||
// headers: Object?
|
||||
// Headers to use for the request.
|
||||
// user: String?
|
||||
// Username to use during the request.
|
||||
// password: String?
|
||||
// Password to use during the request.
|
||||
});
|
||||
node.__MethodOptions = declare(null, {
|
||||
// method: String?
|
||||
// The HTTP method to use to make the request. Must be
|
||||
// uppercase. Default is `"GET"`.
|
||||
});
|
||||
node.__Options = declare([node.__BaseOptions, node.__MethodOptions]);
|
||||
|
||||
node.get = function(url, options){
|
||||
// summary:
|
||||
// Send an HTTP GET request using XMLHttpRequest with the given URL and options.
|
||||
// url: String
|
||||
// URL to request
|
||||
// options: dojo/request/node.__BaseOptions?
|
||||
// Options for the request.
|
||||
// returns: dojo/request.__Promise
|
||||
};
|
||||
node.post = function(url, options){
|
||||
// summary:
|
||||
// Send an HTTP POST request using XMLHttpRequest with the given URL and options.
|
||||
// url: String
|
||||
// URL to request
|
||||
// options: dojo/request/node.__BaseOptions?
|
||||
// Options for the request.
|
||||
// returns: dojo/request.__Promise
|
||||
};
|
||||
node.put = function(url, options){
|
||||
// summary:
|
||||
// Send an HTTP PUT request using XMLHttpRequest with the given URL and options.
|
||||
// url: String
|
||||
// URL to request
|
||||
// options: dojo/request/node.__BaseOptions?
|
||||
// Options for the request.
|
||||
// returns: dojo/request.__Promise
|
||||
};
|
||||
node.del = function(url, options){
|
||||
// summary:
|
||||
// Send an HTTP DELETE request using XMLHttpRequest with the given URL and options.
|
||||
// url: String
|
||||
// URL to request
|
||||
// options: dojo/request/node.__BaseOptions?
|
||||
// Options for the request.
|
||||
// returns: dojo/request.__Promise
|
||||
};
|
||||
=====*/
|
||||
|
||||
util.addCommonMethods(node);
|
||||
|
||||
return node;
|
||||
});
|
||||
Reference in New Issue
Block a user