Add parseCookie and serializeCookie
This commit is contained in:
16
snippets/parseCookie.md
Normal file
16
snippets/parseCookie.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
### parseCookie
|
||||||
|
|
||||||
|
Parse an HTTP Cookie header string and return an object of all cookie name-value pairs.
|
||||||
|
|
||||||
|
Use `String.split(';')` to separate key-value pairs from each other.
|
||||||
|
Use `Array.map()` and `String.split('=')` to separate keys from values in each pair.
|
||||||
|
Use `Array.reduce()` and `decodeURIComponent()` to create an object with all key-value pairs.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const parseCookie = str =>
|
||||||
|
str.split(';').map(v => v.split('=')).reduce((acc,v) => {acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim()); return acc},{});
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
parseCookie('foo=bar; equation=E%3Dmc%5E2'); // { foo: 'bar', equation: 'E=mc^2' }
|
||||||
|
```
|
||||||
13
snippets/serializeCookie.md
Normal file
13
snippets/serializeCookie.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
### serializeCookie
|
||||||
|
|
||||||
|
Serialize a cookie name-value pair into a Set-Cookie header string.
|
||||||
|
|
||||||
|
Use template literals and `encodeURIComponent()` to create the appropriate string.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const serializeCookie = (name, val) => `${encodeURIComponent(name)}=${encodeURIComponent(val)}`;
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
serializeCookie('foo', 'bar'); // 'foo=bar'
|
||||||
|
```
|
||||||
@ -125,6 +125,7 @@ once:function
|
|||||||
onUserInputChange:browser,event,advanced
|
onUserInputChange:browser,event,advanced
|
||||||
orderBy:object,array
|
orderBy:object,array
|
||||||
palindrome:string
|
palindrome:string
|
||||||
|
parseCookie:utility,string
|
||||||
partition:array,object,function
|
partition:array,object,function
|
||||||
percentile:math
|
percentile:math
|
||||||
pick:array
|
pick:array
|
||||||
@ -154,6 +155,7 @@ sampleSize:array,random
|
|||||||
scrollToTop:browser
|
scrollToTop:browser
|
||||||
sdbm:math,utility
|
sdbm:math,utility
|
||||||
select:object
|
select:object
|
||||||
|
serializeCookie:utility,string
|
||||||
setStyle:browser
|
setStyle:browser
|
||||||
shallowClone:object
|
shallowClone:object
|
||||||
show:browser,css
|
show:browser,css
|
||||||
|
|||||||
Reference in New Issue
Block a user