Fix whitespace cleanup in confs
							parent
							
								
									7c12dfc0c2
								
							
						
					
					
						commit
						7276767102
					
				|  | @ -78,16 +78,30 @@ const recurse = (entriesOrObject, depth) => { | |||
|     return retVal; | ||||
| }; | ||||
| 
 | ||||
| export default entriesOrObject => recurse(entriesOrObject, 0) | ||||
|     // Cleanup triple linebreaks
 | ||||
|     .replace(/\n\n\n/g, '\n\n') | ||||
| export default entriesOrObject => { | ||||
|     // Generate the conf
 | ||||
|     let conf = recurse(entriesOrObject, 0); | ||||
| 
 | ||||
|     // Do some regex cleanup
 | ||||
|     conf = conf | ||||
|         // Cleanup triple linebreaks
 | ||||
|         .replace(/\n\n\n/g, '\n\n') | ||||
|         // Double linebreak before comment
 | ||||
|         .replace(/^([^\S\r\n]*[^#\s].*[^\n])\n([^\S\r\n]*)#/gm, '$1\n\n$2#') | ||||
|         // Single linebreak between comment and block
 | ||||
|         .replace(/^([^\S\r\n]*#.*)(?:\n[^\S\r\n]*)+\n([^\S\r\n]*.*{)/gm, '$1\n$2') | ||||
|         // Double linebreak after double comment
 | ||||
|         .replace(/^([^\S\r\n]*#.*\n[^\S\r\n]*#.*\n)([^\S\r\n]*[^#\s])/gm, '$1\n$2'); | ||||
| 
 | ||||
|     // Cleanup extra linebreaks between multiple close blocks
 | ||||
|     .replace(/^([^\S\r\n]*})(?:\n[^\S\r\n]*)+\n([^\S\r\n]*})/gm, '$1\n$2') | ||||
|     // Double linebreak before comment
 | ||||
|     .replace(/^([^\S\r\n]*[^#\s].*[^\n])\n([^\S\r\n]*)#/gm, '$1\n\n$2#') | ||||
|     // Single linebreak between comment and block
 | ||||
|     .replace(/^([^\S\r\n]*#.*)(?:\n[^\S\r\n]*)+\n([^\S\r\n]*.*{)/gm, '$1\n$2') | ||||
|     // Double linebreak after double comment
 | ||||
|     .replace(/^([^\S\r\n]*#.*\n[^\S\r\n]*#.*\n)([^\S\r\n]*[^#\s])/gm, '$1\n$2') | ||||
|     // Use a loop as this has overlapping matches
 | ||||
|     let match; | ||||
|     do { | ||||
|         match = /^([^\S\r\n]*})(?:\n[^\S\r\n]*)+\n([^\S\r\n]*})/m.exec(conf); | ||||
|         if (match) | ||||
|             conf = conf.slice(0, match.index) + match[1] + '\n' + match[2] + conf.slice(match.index + match[0].length); | ||||
|     } while (match); | ||||
| 
 | ||||
|     // Remove initial & trailing whitespace
 | ||||
|     .trim(); | ||||
|     return conf.trim(); | ||||
| }; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 MattIPv4
						MattIPv4