* Add semi to ESLint rules * Add padded-blocks to ESLint rules * Add comma-dangle to ESLint rules * add config/webpack and storyboard * add streaming/ * yarn test:lint -- --fix
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			791 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			791 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import Link from 'http-link-header';
 | |
| import querystring from 'querystring';
 | |
| 
 | |
| Link.parseAttrs = (link, parts) => {
 | |
|   let match = null;
 | |
|   let attr  = '';
 | |
|   let value = '';
 | |
|   let attrs = '';
 | |
| 
 | |
|   let uriAttrs = /<(.*)>;\s*(.*)/gi.exec(parts);
 | |
| 
 | |
|   if(uriAttrs) {
 | |
|     attrs = uriAttrs[2];
 | |
|     link  = Link.parseParams(link, uriAttrs[1]);
 | |
|   }
 | |
| 
 | |
|   while(match = Link.attrPattern.exec(attrs)) { // eslint-disable-line no-cond-assign
 | |
|     attr  = match[1].toLowerCase();
 | |
|     value = match[4] || match[3] || match[2];
 | |
| 
 | |
|     if( /\*$/.test(attr)) {
 | |
|       Link.setAttr(link, attr, Link.parseExtendedValue(value));
 | |
|     } else if(/%/.test(value)) {
 | |
|       Link.setAttr(link, attr, querystring.decode(value));
 | |
|     } else {
 | |
|       Link.setAttr(link, attr, value);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   return link;
 | |
| };
 | |
| 
 | |
| export default Link;
 |