MCPcopy Index your code
hub / github.com/NativeScript/NativeScript / transformAst

Function transformAst

packages/core/css/css-tree-parser.ts:31–128  ·  view source on GitHub ↗
(node, css, type = null)

Source from the content-addressed store, hash-verified

29}
30
31function transformAst(node, css, type = null) {
32 if (!node) {
33 return;
34 }
35
36 if (node.type === 'StyleSheet') {
37 return {
38 type: 'stylesheet',
39 stylesheet: {
40 rules: node.children
41 .map((child) => transformAst(child, css))
42 .filter((child) => child !== null)
43 .toArray(),
44 parsingErrors: [],
45 },
46 };
47 }
48
49 if (node.type === 'Atrule') {
50 const atrule: any = {
51 type: node.name,
52 };
53
54 if (node.name === 'supports' || node.name === 'media') {
55 atrule[node.name] = node.prelude.value;
56 atrule.rules = transformAst(node.block, css);
57 } else if (node.name === 'page') {
58 atrule.selectors = node.prelude ? mapSelectors(node.prelude.value) : [];
59 atrule.declarations = transformAst(node.block, css);
60 } else if (node.name === 'document') {
61 atrule.document = node.prelude ? node.prelude.value : '';
62 atrule.vendor = '';
63 atrule.rules = transformAst(node.block, css);
64 } else if (node.name === 'font-face') {
65 atrule.declarations = transformAst(node.block, css);
66 } else if (node.name === 'import' || node.name === 'charset' || node.name === 'namespace') {
67 atrule[node.name] = node.prelude ? node.prelude.value : '';
68 } else if (node.name === 'keyframes') {
69 atrule.name = node.prelude ? node.prelude.value : '';
70 atrule.keyframes = transformAst(node.block, css, 'keyframe');
71 atrule.vendor = undefined;
72 } else {
73 atrule.rules = transformAst(node.block, css);
74 }
75
76 atrule.position = mapPosition(node, css);
77
78 return atrule;
79 }
80
81 if (node.type === 'Block') {
82 return node.children
83 .map((child) => transformAst(child, css, type))
84 .filter((child) => child !== null)
85 .toArray();
86 }
87
88 if (node.type === 'Rule') {

Callers 1

cssTreeParseFunction · 0.85

Calls 5

mapSelectorsFunction · 0.85
mapPositionFunction · 0.85
mapMethod · 0.65
ErrorClass · 0.50
filterMethod · 0.45

Tested by

no test coverage detected