boilerplate.js
Version:
Development Tools
39 lines (30 loc) • 1.35 kB
JavaScript
function process(css, options, cb) {
let full_css = css;
options.files.forEach(file => {
let mq_text = '';
file.match.forEach(mq => {
const regex = options.production
? new RegExp(`@media ${mq}\\{([\\s\\S]+?})}`, 'g')
: new RegExp(`@media ${mq}.*\\{([\\s\\S]+?})\\s*}`, 'g');
let text = mq.toString().replace(/\\/g, '');
let media_text = `@media ${text}${options.production ? '' : ' '}{`;
try {
full_css.match(regex).forEach(result => {
css = css.replace(result, '');
result = result.replace(`@media ${text}${options.production ? '' : ' '}{`, '').slice(0, -1);
media_text += result;
});
} catch (error) {
return;
}
media_text += '}';
mq_text += media_text;
});
fs.writeFileSync(options.outpath + file.name, mq_text);
console.log('Updated'.green, options.outpath + file.name);
});
fs.writeFileSync(options.outpath + options.base + '.css', css);
console.log('Updated'.green, options.outpath + options.base + '.css');
cb && cb();
}
module.exports = { process };