You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
974 B
38 lines
974 B
'use strict' |
|
|
|
var tough = require('tough-cookie') |
|
|
|
var Cookie = tough.Cookie |
|
var CookieJar = 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') |
|
} |
|
return Cookie.parse(str, {loose: true}) |
|
} |
|
|
|
// Adapt the sometimes-Async api of tough.CookieJar to our requirements |
|
function RequestJar (store) { |
|
var self = this |
|
self._jar = new CookieJar(store, {looseMode: true}) |
|
} |
|
RequestJar.prototype.setCookie = function (cookieOrStr, uri, options) { |
|
var self = this |
|
return self._jar.setCookieSync(cookieOrStr, uri, options || {}) |
|
} |
|
RequestJar.prototype.getCookieString = function (uri) { |
|
var self = this |
|
return self._jar.getCookieStringSync(uri) |
|
} |
|
RequestJar.prototype.getCookies = function (uri) { |
|
var self = this |
|
return self._jar.getCookiesSync(uri) |
|
} |
|
|
|
exports.jar = function (store) { |
|
return new RequestJar(store) |
|
}
|
|
|