gulp-px2rem-converter
Version:
Gulp plugin. Converts all properties in pixels to rem, also converts all media in pixels in em
40 lines (39 loc) • 1.17 kB
JavaScript
;
const rootPattern = /:root+[^}]+}/; // find :root{@any}
const htmlPattern = /html+[^}]+}/; // find html{@any}
const fontSizePattern = /font-size+[^;]+;/; // find font-size:@any;
let resultRoot = [];
let params = '16px';
let fzResult = [];
const getParams = (file, skipeRoot = false) => {
if (!skipeRoot) {
resultRoot = rootPattern.exec(file) || [];
if (resultRoot.length) {
fzResult = fontSizePattern.exec(resultRoot[0]) || [];
if (fzResult.length) {
return params = fzResult[0].replace(';', '').split(':')[1];
}
else {
resultRoot = [];
return getParams(file, true);
}
}
}
resultRoot = htmlPattern.exec(file) || [];
if (resultRoot) {
fzResult = fontSizePattern.exec(resultRoot[0]) || [];
if (fzResult.length) {
return params = fzResult[0].replace(';', '').split(':')[1];
}
else {
resultRoot = [];
return '16px';
}
}
return params;
};
const getRoot = () => resultRoot[0] || '';
module.exports = {
getParams,
getRoot
};