31 lines
		
	
	
		
			808 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			808 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var { isNodeChildrenList } = require('./utils');
 | |
| 
 | |
| function isSafeOperator(node) {
 | |
|     return node.type === 'Operator' && node.value !== '+' && node.value !== '-';
 | |
| }
 | |
| 
 | |
| module.exports = function cleanWhitespace(node, item, list) {
 | |
|     // remove when first or last item in sequence
 | |
|     if (item.next === null || item.prev === null) {
 | |
|         list.remove(item);
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     // white space in stylesheet or block children
 | |
|     if (isNodeChildrenList(this.stylesheet, list) ||
 | |
|         isNodeChildrenList(this.block, list)) {
 | |
|         list.remove(item);
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     if (item.next.data.type === 'WhiteSpace') {
 | |
|         list.remove(item);
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     if (isSafeOperator(item.prev.data) || isSafeOperator(item.next.data)) {
 | |
|         list.remove(item);
 | |
|         return;
 | |
|     }
 | |
| };
 |