|
|
@@ -22,11 +22,14 @@
|
|
|
|
|
|
this.mediasMinifier = this.mediasMinifier || (() => {
|
|
|
|
|
|
+ const MEDIA_ALL = "all";
|
|
|
+ const MEDIA_SCREEN = "screen";
|
|
|
+
|
|
|
return {
|
|
|
process: stylesheets => {
|
|
|
const stats = { processed: 0, discarded: 0 };
|
|
|
stylesheets.forEach((stylesheetInfo, element) => {
|
|
|
- if (matchesMediaType(stylesheetInfo.mediaText || "all", "screen") && stylesheetInfo.stylesheet.children) {
|
|
|
+ if (matchesMediaType(stylesheetInfo.mediaText || MEDIA_ALL, MEDIA_SCREEN) && stylesheetInfo.stylesheet.children) {
|
|
|
const removedRules = processRules(stylesheetInfo.stylesheet.children, stats);
|
|
|
removedRules.forEach(({ cssRules, cssRule }) => cssRules.remove(cssRule));
|
|
|
} else {
|
|
|
@@ -42,7 +45,7 @@ this.mediasMinifier = this.mediasMinifier || (() => {
|
|
|
const ruleData = cssRule.data;
|
|
|
if (ruleData.type == "Atrule" && ruleData.name == "media" && ruleData.block && ruleData.block.children && ruleData.prelude && ruleData.prelude.children) {
|
|
|
stats.processed++;
|
|
|
- if (matchesMediaType(cssTree.generate(ruleData.prelude), "screen")) {
|
|
|
+ if (matchesMediaType(cssTree.generate(ruleData.prelude), MEDIA_SCREEN)) {
|
|
|
processRules(ruleData.block.children, stats, removedRules);
|
|
|
} else {
|
|
|
removedRules.push({ cssRules, cssRule });
|
|
|
@@ -59,7 +62,8 @@ this.mediasMinifier = this.mediasMinifier || (() => {
|
|
|
|
|
|
function matchesMediaType(mediaText, mediaType) {
|
|
|
const foundMediaTypes = flatten(mediaQueryParser.parseMediaList(mediaText).map(node => getMediaTypes(node, mediaType)));
|
|
|
- return foundMediaTypes.find(mediaTypeInfo => (!mediaTypeInfo.not && (mediaTypeInfo.value == mediaType || mediaTypeInfo.value == "all")) || (mediaTypeInfo.not && (mediaTypeInfo.value == "all" || mediaTypeInfo.value != mediaType)));
|
|
|
+ return foundMediaTypes.find(mediaTypeInfo => (!mediaTypeInfo.not && (mediaTypeInfo.value == mediaType || mediaTypeInfo.value == MEDIA_ALL))
|
|
|
+ || (mediaTypeInfo.not && (mediaTypeInfo.value == MEDIA_ALL || mediaTypeInfo.value != mediaType)));
|
|
|
}
|
|
|
|
|
|
function getMediaTypes(parentNode, mediaType, mediaTypes = []) {
|
|
|
@@ -76,7 +80,7 @@ this.mediasMinifier = this.mediasMinifier || (() => {
|
|
|
}
|
|
|
});
|
|
|
if (!mediaTypes.length) {
|
|
|
- mediaTypes.push({ not: false, value: "all" });
|
|
|
+ mediaTypes.push({ not: false, value: MEDIA_ALL });
|
|
|
}
|
|
|
return mediaTypes;
|
|
|
}
|