File size: 987 Bytes
5fae594 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
var optional = require('./optional')
, tough = optional('tough-cookie')
, Cookie = tough && tough.Cookie
, CookieJar = tough && tough.CookieJar
;
exports.parse = function(str) {
if (str && str.uri) str = str.uri
if (typeof str !== 'string') throw new Error("The cookie function only accepts STRING as param")
if (!Cookie) {
return null;
}
return Cookie.parse(str)
};
// Adapt the sometimes-Async api of tough.CookieJar to our requirements
function RequestJar() {
this._jar = new CookieJar();
}
RequestJar.prototype.setCookie = function(cookieOrStr, uri, options) {
return this._jar.setCookieSync(cookieOrStr, uri, options || {});
};
RequestJar.prototype.getCookieString = function(uri) {
return this._jar.getCookieStringSync(uri);
};
exports.jar = function() {
if (!CookieJar) {
// tough-cookie not loaded, return a stub object:
return {
setCookie: function(){},
getCookieString: function(){}
};
}
return new RequestJar();
};
|