]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/request/node.js
2 Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
8 define("dojo/request/node",["require","./util","./handlers","../errors/RequestTimeoutError","../node!http","../node!https","../node!url","../node!stream"],function(_1
,_2
,_3
,_4
,_5
,_6
,_7
,_8
){var _9
=_8
.Stream
,_a
;var _b
={method
:"GET",query
:null,data
:_a
,headers
:{}};function _c(_d
,_e
){var _f
=_2
.parseArgs(_d
,_2
.deepCreate(_b
,_e
),_e
&&_e
.data
instanceof _9
);_d
=_f
.url
;_e
=_f
.options
;var def
=_2
.deferred(_f
,function(dfd
,_10
){_10
.clientRequest
.abort();});_d
=_7
.parse(_d
);var _11
=_f
.requestOptions
={hostname
:_d
.hostname
,port
:_d
.port
,socketPath
:_e
.socketPath
,method
:_e
.method
,headers
:_e
.headers
,agent
:_e
.agent
,pfx
:_e
.pfx
,key
:_e
.key
,passphrase
:_e
.passphrase
,cert
:_e
.cert
,ca
:_e
.ca
,ciphers
:_e
.ciphers
,rejectUnauthorized
:_e
.rejectUnauthorized
===false?false:true};if(_d
.path
){_11
.path
=_d
.path
;}if(_e
.user
||_e
.password
){_11
.auth
=(_e
.user
||"")+":"+(_e
.password
||"");}var req
=_f
.clientRequest
=(_d
.protocol
==="https:"?_6
:_5
).request(_11
);if(_e
.socketOptions
){if("timeout" in _e
.socketOptions
){req
.setTimeout(_e
.socketOptions
.timeout
);}if("noDelay" in _e
.socketOptions
){req
.setNoDelay(_e
.socketOptions
.noDelay
);}if("keepAlive" in _e
.socketOptions
){var _12
=_e
.socketOptions
.keepAlive
;req
.setKeepAlive(_12
>=0,_12
||0);}}req
.on("socket",function(){_f
.hasSocket
=true;def
.progress(_f
);});req
.on("response",function(_13
){_f
.clientResponse
=_13
;_f
.status
=_13
.statusCode
;_f
.getHeader=function(_14
){return _13
.headers
[_14
.toLowerCase()]||null;};var _15
=[];_13
.on("data",function(_16
){_15
.push(_16
);});_13
.on("end",function(){if(_17
){clearTimeout(_17
);}_f
.text
=_15
.join("");_3(_f
);def
.resolve(_f
);});});req
.on("error",def
.reject
);if(_e
.data
){if(typeof _e
.data
==="string"){req
.end(_e
.data
);}else{_e
.data
.pipe(req
);}}else{req
.end();}if(_e
.timeout
){var _17
=setTimeout(function(){def
.cancel(new _4(_f
));},_e
.timeout
);}return def
.promise
;};_2
.addCommonMethods(_c
);return _c
;});