1 | 'use strict';
|
2 |
|
3 | var postcss = require('postcss');
|
4 |
|
5 | function remove (callback) {
|
6 | return function (node) {
|
7 | callback.call(this, node) && node.removeSelf();
|
8 | };
|
9 | }
|
10 |
|
11 | module.exports = postcss.plugin('postcss-discard-empty', function () {
|
12 | return function (css) {
|
13 | css.eachDecl(remove(function (decl) {
|
14 | return !decl.value;
|
15 | }));
|
16 | css.eachRule(remove(function (rule) {
|
17 | return !rule.selector.length || !rule.nodes.length;
|
18 | }));
|
19 | css.eachAtRule(remove(function (rule) {
|
20 | if (rule.nodes) {
|
21 | return !rule.nodes.length;
|
22 | }
|
23 | return !rule.params;
|
24 | }));
|
25 | };
|
26 | });
|