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.
		
		
		
		
		
			
		
			
				
					
					
						
							54 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							54 lines
						
					
					
						
							1.2 KiB
						
					
					
				'use strict'; | 
						|
 | 
						|
const cssTree = require('css-tree'); | 
						|
 | 
						|
function compressBackground(node) { | 
						|
    function flush() { | 
						|
        if (!buffer.length) { | 
						|
            buffer.unshift( | 
						|
                { | 
						|
                    type: 'Number', | 
						|
                    loc: null, | 
						|
                    value: '0' | 
						|
                }, | 
						|
                { | 
						|
                    type: 'Number', | 
						|
                    loc: null, | 
						|
                    value: '0' | 
						|
                } | 
						|
            ); | 
						|
        } | 
						|
 | 
						|
        newValue.push.apply(newValue, buffer); | 
						|
 | 
						|
        buffer = []; | 
						|
    } | 
						|
 | 
						|
    let newValue = []; | 
						|
    let buffer = []; | 
						|
 | 
						|
    node.children.forEach((node) => { | 
						|
        if (node.type === 'Operator' && node.value === ',') { | 
						|
            flush(); | 
						|
            newValue.push(node); | 
						|
            return; | 
						|
        } | 
						|
 | 
						|
        // remove defaults | 
						|
        if (node.type === 'Identifier') { | 
						|
            if (node.name === 'transparent' || | 
						|
                node.name === 'none' || | 
						|
                node.name === 'repeat' || | 
						|
                node.name === 'scroll') { | 
						|
                return; | 
						|
            } | 
						|
        } | 
						|
 | 
						|
        buffer.push(node); | 
						|
    }); | 
						|
 | 
						|
    flush(); | 
						|
    node.children = new cssTree.List().fromArray(newValue); | 
						|
} | 
						|
 | 
						|
module.exports = compressBackground;
 | 
						|
 |