summaryrefslogtreecommitdiff
path: root/src/compiler/parse/read/style.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/parse/read/style.ts')
-rw-r--r--src/compiler/parse/read/style.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/compiler/parse/read/style.ts b/src/compiler/parse/read/style.ts
new file mode 100644
index 000000000..deb60de46
--- /dev/null
+++ b/src/compiler/parse/read/style.ts
@@ -0,0 +1,33 @@
+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;
+
+ 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;
+
+ return (
+ a.type === 'TypeSelector' &&
+ a.name === 'ref' &&
+ b.type === 'PseudoClassSelector'
+ );
+}