insomnia/app/lib/cookies.js
Gregory Schier 9e84bc4387 Workspaces, Cookies, and More! (#31)
* Start on workspace dropdown and upgrade fontawesome

* WorkspaceDropdown start and Elm components!

* Lots of CSS shit

* Refactor some db stuff and move filter out of sidebar

* Adjust dropdown css

* Handle duplicate header names, and stuff

* Shitty cookies tab

* fixed cookie table a bit

* Modal refactor

* Starteed cookie modal design

* Better cookie storage and filter cookie modal

* Cookie editor round 1

* Fix kve cursor jumping and form encoding templating

* New cookies now show up in filter

* Checkpoint

* Stuff and fix environments css

* Added manage cookies button to cookie pane

* Fix accidental sidebar item drag on sidebar resize

* Environments modal is looking pretty good now

* Pretty much done environments nad cookies

* Some changes

* Fixed codemirror in modals

* Fixed some things

* Add basic proxy support

* Updated shortcuts

* Code snippet generation

* Some style

* bug fix

* Code export now gets cookies for correct domain
2016-08-15 10:04:36 -07:00

50 lines
1.0 KiB
JavaScript

import {CookieJar} from 'tough-cookie';
import request from 'request';
/**
* Get a list of cookie objects from a request.jar()
*
* @param cookies
*/
export function cookiesFromJar (jar) {
return new Promise(resolve => {
jar._jar.store.getAllCookies((err, cookies) => {
if (err) {
console.warn('Failed to get cookies form jar', err);
resolve([]);
} else {
resolve(cookies);
}
});
});
}
/**
* Get a request.jar() from a list of cookie objects
*
* @param cookies
*/
export function jarFromCookies (cookies) {
const jar = request.jar();
try {
jar._jar = CookieJar.fromJSON({cookies});
} catch (e) {
console.log('Failed to initialize cookie jar', e);
}
return jar;
}
export function cookieToString (cookie) {
var str = cookie.toString();
// tough-cookie toString() doesn't put domain on all the time.
// This hack adds when tough-cookie won't
if (cookie.domain && cookie.hostOnly) {
str += '; Domain=' + cookie.domain;
}
return str;
}