31 lines
777 B
JavaScript
31 lines
777 B
JavaScript
module.exports = function EmptyRemoval(data) {
|
|
var stripEmpty = function(cssData) {
|
|
var tempData = [];
|
|
var nextEmpty = 0;
|
|
var cursor = 0;
|
|
|
|
for (; nextEmpty < cssData.length;) {
|
|
nextEmpty = cssData.indexOf('{}', cursor);
|
|
if (nextEmpty == -1)
|
|
break;
|
|
|
|
var startsAt = nextEmpty - 1;
|
|
while (cssData[startsAt] && cssData[startsAt] != '}' && cssData[startsAt] != '{' && cssData[startsAt] != ';')
|
|
startsAt--;
|
|
|
|
tempData.push(cssData.substring(cursor, startsAt + 1));
|
|
cursor = nextEmpty + 2;
|
|
}
|
|
|
|
return tempData.length > 0 ?
|
|
stripEmpty(tempData.join('') + cssData.substring(cursor, cssData.length)) :
|
|
cssData;
|
|
};
|
|
|
|
return {
|
|
process: function() {
|
|
return stripEmpty(data);
|
|
}
|
|
};
|
|
};
|