@stylable/core
Version:
CSS for Components
22 lines (15 loc) • 712 B
text/typescript
import postcss, { ProcessOptions, Root, parse as cssParse } from 'postcss';
import postcssNested from 'postcss-nested';
import postcssJS from 'postcss-js';
import safeParser from 'postcss-safe-parser';
export type CSSObject = object;
const processor = postcss([postcssNested()]);
export function cssObjectToAst(cssObject: CSSObject, sourceFile = '') {
const r = processor.process(cssObject, { from: sourceFile, parser: postcssJS });
return r.root.type === 'document' ? r.root.nodes[0] : r.root;
}
export type CssParser = typeof safeParse;
export function safeParse(css: string, options: ProcessOptions = { from: 'style.st.css' }): Root {
return safeParser(css, options);
}
export { cssParse };