35 lines
		
	
	
		
			1006 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1006 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var SUPPORTED_COMPACT_BLOCK_MATCHER = /^@media\W/;
 | 
						|
var SUPPORTED_QUOTE_REMOVAL_MATCHER = /^@(?:keyframes|-moz-keyframes|-o-keyframes|-webkit-keyframes)\W/;
 | 
						|
 | 
						|
function tidyBlock(values, spaceAfterClosingBrace) {
 | 
						|
  var withoutSpaceAfterClosingBrace;
 | 
						|
  var withoutQuotes;
 | 
						|
  var i;
 | 
						|
 | 
						|
  for (i = values.length - 1; i >= 0; i--) {
 | 
						|
    withoutSpaceAfterClosingBrace = !spaceAfterClosingBrace && SUPPORTED_COMPACT_BLOCK_MATCHER.test(values[i][1]);
 | 
						|
    withoutQuotes = SUPPORTED_QUOTE_REMOVAL_MATCHER.test(values[i][1]);
 | 
						|
 | 
						|
    values[i][1] = values[i][1]
 | 
						|
      .replace(/\n|\r\n/g, ' ')
 | 
						|
      .replace(/\s+/g, ' ')
 | 
						|
      .replace(/(,|:|\() /g, '$1')
 | 
						|
      .replace(/ \)/g, ')');
 | 
						|
 | 
						|
    if (withoutQuotes) {
 | 
						|
      values[i][1] = values[i][1]
 | 
						|
        .replace(/'([a-zA-Z][a-zA-Z\d\-_]+)'/, '$1')
 | 
						|
        .replace(/"([a-zA-Z][a-zA-Z\d\-_]+)"/, '$1');
 | 
						|
    }
 | 
						|
 | 
						|
    if (withoutSpaceAfterClosingBrace) {
 | 
						|
      values[i][1] = values[i][1]
 | 
						|
        .replace(/\) /g, ')');
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return values;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = tidyBlock;
 |