1 | ## Caseless -- wrap an object to set and get property with caseless semantics but also preserve caseing.
|
2 |
|
3 | This library is incredibly useful when working with HTTP headers. It allows you to get/set/check for headers in a caseless manner while also preserving the caseing of headers the first time they are set.
|
4 |
|
5 | ## Usage
|
6 |
|
7 | ```javascript
|
8 | var headers = {}
|
9 | , c = caseless(headers)
|
10 | ;
|
11 | c.set('a-Header', 'asdf')
|
12 | c.get('a-header') === 'asdf'
|
13 | ```
|
14 |
|
15 | ## has(key)
|
16 |
|
17 | Has takes a name and if it finds a matching header will return that header name with the preserved caseing it was set with.
|
18 |
|
19 | ```javascript
|
20 | c.has('a-header') === 'a-Header'
|
21 | ```
|
22 |
|
23 | ## set(key, value[, clobber=true])
|
24 |
|
25 | Set is fairly straight forward except that if the header exists and clobber is disabled it will add `','+value` to the existing header.
|
26 |
|
27 | ```javascript
|
28 | c.set('a-Header', 'fdas')
|
29 | c.set('a-HEADER', 'more', false)
|
30 | c.get('a-header') === 'fdsa,more'
|
31 | ```
|
32 |
|
33 | ## swap(key)
|
34 |
|
35 | Swaps the casing of a header with the new one that is passed in.
|
36 |
|
37 | ```javascript
|
38 | var headers = {}
|
39 | , c = caseless(headers)
|
40 | ;
|
41 | c.set('a-Header', 'fdas')
|
42 | c.swap('a-HEADER')
|
43 | c.has('a-header') === 'a-HEADER'
|
44 | headers === {'a-HEADER': 'fdas'}
|
45 | ```
|