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