Opal-Estate-Pro/node_modules/postcss-minify-font-values/index.js

39 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-09-13 06:27:52 +02:00
var assign = require('object-assign');
var postcss = require('postcss');
var valueParser = require('postcss-value-parser');
var minifyWeight = require('./lib/minify-weight');
var minifyFamily = require('./lib/minify-family');
var minifyFont = require('./lib/minify-font');
function transform(opts) {
opts = assign({
removeAfterKeyword: true,
removeDuplicates: true,
removeQuotes: true
}, opts);
return function (decl) {
var tree;
if (decl.type === 'decl') {
if (decl.prop === 'font-weight') {
decl.value = minifyWeight(decl.value, opts);
} else if (decl.prop === 'font-family') {
tree = valueParser(decl.value);
tree.nodes = minifyFamily(tree.nodes, opts);
decl.value = tree.toString();
} else if (decl.prop === 'font') {
tree = valueParser(decl.value);
tree.nodes = minifyFont(tree.nodes, opts);
decl.value = tree.toString();
}
}
};
}
module.exports = postcss.plugin('postcss-minify-font-values', function (opts) {
return function (css) {
css.walk(transform(opts));
};
});