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
			| 
											3 years ago
										 | ## 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'} | ||
|  | ``` |