unocss-preset-autoprefixer
Version:
unocss preset for autoprefixer
42 lines (36 loc) • 1.36 kB
JavaScript
;
const node_buffer = require('node:buffer');
const process = require('node:process');
const browserslist = require('browserslist');
const lightningcss = require('lightningcss');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
const process__default = /*#__PURE__*/_interopDefaultCompat(process);
const browserslist__default = /*#__PURE__*/_interopDefaultCompat(browserslist);
function autoprefixerPreset(queries = [
">= 0.25%",
"last 2 versions",
"not dead",
"not ie <= 11",
"Android >= 4.0",
"iOS >= 8"
]) {
const targets = lightningcss.browserslistToTargets(browserslist__default(queries));
return {
name: "unocss-preset-autoprefixer",
postprocess: (util) => {
if (process__default.argv0?.endsWith("Code Helper (Plugin)"))
return;
const entries = util.entries;
const { code } = lightningcss.transformStyleAttribute({
code: node_buffer.Buffer.from(entries.filter((item) => !item[0].startsWith("--un")).map((x) => x.join(":")).join(";")),
targets,
minify: true
});
util.entries = [
...entries.filter((item) => item[0].startsWith("--un")),
...code.toString() ? code.toString().split(";").map((i) => i.split(":")) : []
];
}
};
}
module.exports = autoprefixerPreset;