3 var tough = require('tough-cookie')
5 var Cookie = tough.Cookie
6 , CookieJar = tough.CookieJar
9 exports.parse = function(str) {
13 if (typeof str !== 'string') {
14 throw new Error('The cookie function only accepts STRING as param')
16 return Cookie.parse(str, {loose: true})
19 // Adapt the sometimes-Async api of tough.CookieJar to our requirements
20 function RequestJar(store) {
22 self._jar = new CookieJar(store, {looseMode: true})
24 RequestJar.prototype.setCookie = function(cookieOrStr, uri, options) {
26 return self._jar.setCookieSync(cookieOrStr, uri, options || {})
28 RequestJar.prototype.getCookieString = function(uri) {
30 return self._jar.getCookieStringSync(uri)
32 RequestJar.prototype.getCookies = function(uri) {
34 return self._jar.getCookiesSync(uri)
37 exports.jar = function(store) {
38 return new RequestJar(store)