diff options
Diffstat (limited to 'node_modules/csso/lib/replace/property/background.js')
| -rw-r--r-- | node_modules/csso/lib/replace/property/background.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/node_modules/csso/lib/replace/property/background.js b/node_modules/csso/lib/replace/property/background.js new file mode 100644 index 00000000..847a8cff --- /dev/null +++ b/node_modules/csso/lib/replace/property/background.js @@ -0,0 +1,50 @@ +import { List } from 'css-tree'; + +export default 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 List().fromArray(newValue); +}; |
