You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							46 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							46 lines
						
					
					
						
							1.1 KiB
						
					
					
				| ## Caseless -- wrap an object to set and get property with caseless semantics but also preserve caseing.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| ```javascript
 | |
| var headers = {}
 | |
|   , c = caseless(headers)
 | |
|   ;
 | |
| c.set('a-Header', 'asdf')
 | |
| c.get('a-header') === 'asdf'
 | |
| ```
 | |
| 
 | |
| ## has(key)
 | |
| 
 | |
| Has takes a name and if it finds a matching header will return that header name with the preserved caseing it was set with.
 | |
| 
 | |
| ```javascript
 | |
| c.has('a-header') === 'a-Header'
 | |
| ```
 | |
| 
 | |
| ## set(key, value[, clobber=true])
 | |
| 
 | |
| Set is fairly straight forward except that if the header exists and clobber is disabled it will add `','+value` to the existing header.
 | |
| 
 | |
| ```javascript
 | |
| c.set('a-Header', 'fdas')
 | |
| c.set('a-HEADER', 'more', false)
 | |
| c.get('a-header') === 'fdsa,more'
 | |
| ```
 | |
| 
 | |
| ## swap(key)
 | |
| 
 | |
| Swaps the casing of a header with the new one that is passed in.
 | |
| 
 | |
| ```javascript
 | |
| var headers = {}
 | |
|   , c = caseless(headers)
 | |
|   ;
 | |
| c.set('a-Header', 'fdas')
 | |
| c.swap('a-HEADER')
 | |
| c.has('a-header') === 'a-HEADER'
 | |
| headers === {'a-HEADER': 'fdas'}
 | |
| ```
 |