summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/request/lib/cookies.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/request/lib/cookies.js')
-rw-r--r--deps/npm/node_modules/request/lib/cookies.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/deps/npm/node_modules/request/lib/cookies.js b/deps/npm/node_modules/request/lib/cookies.js
new file mode 100644
index 0000000000..7e61c62bcd
--- /dev/null
+++ b/deps/npm/node_modules/request/lib/cookies.js
@@ -0,0 +1,40 @@
+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);
+};
+RequestJar.prototype.getCookies = function(uri) {
+ return this._jar.getCookiesSync(uri);
+};
+
+exports.jar = function() {
+ if (!CookieJar) {
+ // tough-cookie not loaded, return a stub object:
+ return {
+ setCookie: function(){},
+ getCookieString: function(){},
+ getCookies: function(){}
+ };
+ }
+ return new RequestJar();
+};