diff options
Diffstat (limited to 'src/compiler/parse')
-rw-r--r-- | src/compiler/parse/read/style.ts | 57 |
1 files changed, 32 insertions, 25 deletions
diff --git a/src/compiler/parse/read/style.ts b/src/compiler/parse/read/style.ts index deb60de46..f23d7b10e 100644 --- a/src/compiler/parse/read/style.ts +++ b/src/compiler/parse/read/style.ts @@ -1,33 +1,40 @@ import { Parser } from '../index.js'; -import { Node } from 'estree'; import { Style } from '../../interfaces.js'; -export default function read_style(parser: Parser, start: number, attributes: Node[]): Style { - const content_start = parser.index; - const styles = parser.read_until(/<\/style>/); - const content_end = parser.index; - parser.eat('</style>', true); - const end = parser.index; +interface Attribute { + start: number; + end: number; + type: 'Attribute'; + name: string; + value: { + raw: string; + data: string; + }[]; +} + +export default function read_style(parser: Parser, start: number, attributes: Attribute[]): Style { + const content_start = parser.index; + const styles = parser.read_until(/<\/style>/); + const content_end = parser.index; + parser.eat('</style>', true); + const end = parser.index; - return { - type: 'Style', - start, - end, - attributes, - content: { - start: content_start, - end: content_end, - styles - } - }; + return { + type: 'Style', + start, + end, + attributes, + content: { + start: content_start, + end: content_end, + styles, + }, + }; } -function is_ref_selector(a: any, b: any) { // TODO add CSS node types - if (!b) return false; +function is_ref_selector(a: any, b: any) { + // TODO add CSS node types + if (!b) return false; - return ( - a.type === 'TypeSelector' && - a.name === 'ref' && - b.type === 'PseudoClassSelector' - ); + return a.type === 'TypeSelector' && a.name === 'ref' && b.type === 'PseudoClassSelector'; } |