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.
|
|
var List = require('css-tree').List;
module.exports = function compressBackground(node) { function lastType() { if (buffer.length) { return buffer[buffer.length - 1].type; } }
function flush() { if (lastType() === 'WhiteSpace') { buffer.pop(); }
if (!buffer.length) { buffer.unshift( { type: 'Number', loc: null, value: '0' }, { type: 'WhiteSpace', value: ' ' }, { type: 'Number', loc: null, value: '0' } ); }
newValue.push.apply(newValue, buffer);
buffer = []; }
var newValue = []; var buffer = [];
node.children.each(function(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; } }
// don't add redundant spaces
if (node.type === 'WhiteSpace' && (!buffer.length || lastType() === 'WhiteSpace')) { return; }
buffer.push(node); });
flush(); node.children = new List().fromArray(newValue); };
|