@mapcss/core
Version:
Tiny, composable Atomic CSS engine
29 lines (28 loc) • 796 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const assert_js_1 = require("../utils/assert.js");
function desc(a, b) {
if (a < b) {
return 1;
}
else if (a > b) {
return -1;
}
return 0;
}
/** PostCSS plugin for CSS Statement */
function plugin() {
return {
postcssPlugin: "mapcss/postcss-order-statement",
OnceExit: (root) => {
root.nodes.sort((a, b) => {
if ((0, assert_js_1.isRule)(a) && (0, assert_js_1.isRule)(b)) {
return desc(a.nodes.filter(assert_js_1.isDeclaration).length, b.nodes.filter(assert_js_1.isDeclaration).length);
}
return 0;
});
},
};
}
plugin.postcss = true;
exports.default = plugin;