UNPKG

@filbert-js/css-parser

Version:
2 lines (1 loc) 783 B
var e=require("@filbert-js/css-ast"),r=/@media/,n=/&:/,t={prefix:function(r,n){return""+r+e.RULE_SEPARATOR+n+e.RULE_END}};exports.createParser=function(c){return function(o){var s=o.namespace,a=e.toAST(o.css),u=Object.assign({},t,c).prefix;return function t(c){var o=c.node,a=c.selector;return(function(r,n){var t=o.rules.reduce(function(e,r){return""+e+u(r.name,r.value)},"");return""+n+e.OPEN_BRACKET+t+e.CLOSE_BRACKET}(0,a)+" "+o.children.map(function(c){if(r.test(c.raw_selector)){var o=t({node:c,selector:a});return""+c.raw_selector+e.OPEN_BRACKET+o+e.CLOSE_BRACKET}var u=c.raw_selector.split(",");return t({node:c,selector:u.map(function(e){return n.test(e)?e.replace(/&/g,s):e.includes("&")?e.replace(/&/g,s):a+" "+e}).join(",")})}).join(" ")).trim()}({node:a,selector:s})}};