@next-core/storyboard 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,103 +8,104 @@ exports.traverseStoryboard = traverseStoryboard;
|
|
|
8
8
|
|
|
9
9
|
/** Traverse a storyboard AST. */
|
|
10
10
|
function traverseStoryboard(ast, callback) {
|
|
11
|
-
traverseNode(ast, callback);
|
|
11
|
+
traverseNode(ast, callback, []);
|
|
12
12
|
}
|
|
13
13
|
/** Traverse any node(s) in storyboard AST. */
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
function traverse(nodeOrNodes, callback) {
|
|
17
17
|
if (Array.isArray(nodeOrNodes)) {
|
|
18
|
-
traverseNodes(nodeOrNodes, callback);
|
|
18
|
+
traverseNodes(nodeOrNodes, callback, []);
|
|
19
19
|
} else {
|
|
20
|
-
traverseNode(nodeOrNodes, callback);
|
|
20
|
+
traverseNode(nodeOrNodes, callback, []);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function traverseNodes(nodes, callback) {
|
|
24
|
+
function traverseNodes(nodes, callback, path) {
|
|
25
25
|
if (!nodes) {
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
for (const node of nodes) {
|
|
30
|
-
traverseNode(node, callback);
|
|
30
|
+
traverseNode(node, callback, path);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
function traverseNode(node, callback) {
|
|
34
|
+
function traverseNode(node, callback, path) {
|
|
35
35
|
if (!node) {
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
callback(node);
|
|
39
|
+
callback(node, path);
|
|
40
|
+
const childPath = path.concat(node);
|
|
40
41
|
|
|
41
42
|
switch (node.type) {
|
|
42
43
|
case "Root":
|
|
43
|
-
traverseNodes(node.routes, callback);
|
|
44
|
-
traverseNodes(node.templates, callback);
|
|
44
|
+
traverseNodes(node.routes, callback, childPath);
|
|
45
|
+
traverseNodes(node.templates, callback, childPath);
|
|
45
46
|
break;
|
|
46
47
|
|
|
47
48
|
case "Route":
|
|
48
|
-
traverseNodes(node.context, callback);
|
|
49
|
-
traverseNode(node.redirect, callback);
|
|
50
|
-
traverseNode(node.menu, callback);
|
|
51
|
-
traverseNodes(node.providers, callback);
|
|
52
|
-
traverseNodes(node.defineResolves, callback);
|
|
53
|
-
traverseNodes(node.children, callback);
|
|
49
|
+
traverseNodes(node.context, callback, childPath);
|
|
50
|
+
traverseNode(node.redirect, callback, childPath);
|
|
51
|
+
traverseNode(node.menu, callback, childPath);
|
|
52
|
+
traverseNodes(node.providers, callback, childPath);
|
|
53
|
+
traverseNodes(node.defineResolves, callback, childPath);
|
|
54
|
+
traverseNodes(node.children, callback, childPath);
|
|
54
55
|
break;
|
|
55
56
|
|
|
56
57
|
case "Template":
|
|
57
|
-
traverseNodes(node.bricks, callback);
|
|
58
|
-
traverseNodes(node.context, callback);
|
|
58
|
+
traverseNodes(node.bricks, callback, childPath);
|
|
59
|
+
traverseNodes(node.context, callback, childPath);
|
|
59
60
|
break;
|
|
60
61
|
|
|
61
62
|
case "Brick":
|
|
62
|
-
traverseNode(node.if, callback);
|
|
63
|
-
traverseNodes(node.events, callback);
|
|
64
|
-
traverseNodes(node.lifeCycle, callback);
|
|
65
|
-
traverseNodes(node.useBrick, callback);
|
|
66
|
-
traverseNodes(node.useBackend, callback);
|
|
67
|
-
traverseNodes(node.context, callback);
|
|
68
|
-
traverseNodes(node.children, callback);
|
|
63
|
+
traverseNode(node.if, callback, childPath);
|
|
64
|
+
traverseNodes(node.events, callback, childPath);
|
|
65
|
+
traverseNodes(node.lifeCycle, callback, childPath);
|
|
66
|
+
traverseNodes(node.useBrick, callback, childPath);
|
|
67
|
+
traverseNodes(node.useBackend, callback, childPath);
|
|
68
|
+
traverseNodes(node.context, callback, childPath);
|
|
69
|
+
traverseNodes(node.children, callback, childPath);
|
|
69
70
|
break;
|
|
70
71
|
|
|
71
72
|
case "Slot":
|
|
72
73
|
case "UseBrickEntry":
|
|
73
74
|
case "UseBackendEntry":
|
|
74
|
-
traverseNodes(node.children, callback);
|
|
75
|
+
traverseNodes(node.children, callback, childPath);
|
|
75
76
|
break;
|
|
76
77
|
|
|
77
78
|
case "Context":
|
|
78
|
-
traverseNode(node.resolve, callback);
|
|
79
|
-
traverseNodes(node.onChange, callback);
|
|
79
|
+
traverseNode(node.resolve, callback, childPath);
|
|
80
|
+
traverseNodes(node.onChange, callback, childPath);
|
|
80
81
|
break;
|
|
81
82
|
|
|
82
83
|
case "ResolvableCondition":
|
|
83
84
|
case "ResolvableMenu":
|
|
84
|
-
traverseNode(node.resolve, callback);
|
|
85
|
+
traverseNode(node.resolve, callback, childPath);
|
|
85
86
|
break;
|
|
86
87
|
|
|
87
88
|
case "ResolveLifeCycle":
|
|
88
|
-
traverseNodes(node.resolves, callback);
|
|
89
|
+
traverseNodes(node.resolves, callback, childPath);
|
|
89
90
|
break;
|
|
90
91
|
|
|
91
92
|
case "Event":
|
|
92
93
|
case "EventCallback":
|
|
93
94
|
case "SimpleLifeCycle":
|
|
94
95
|
case "ConditionalEvent":
|
|
95
|
-
traverseNodes(node.handlers, callback);
|
|
96
|
+
traverseNodes(node.handlers, callback, childPath);
|
|
96
97
|
break;
|
|
97
98
|
|
|
98
99
|
case "EventHandler":
|
|
99
|
-
traverseNodes(node.callback, callback);
|
|
100
|
+
traverseNodes(node.callback, callback, childPath);
|
|
100
101
|
break;
|
|
101
102
|
|
|
102
103
|
case "ConditionalLifeCycle":
|
|
103
|
-
traverseNodes(node.events, callback);
|
|
104
|
+
traverseNodes(node.events, callback, childPath);
|
|
104
105
|
break;
|
|
105
106
|
|
|
106
107
|
case "BrickMenu":
|
|
107
|
-
traverseNode(node.brick, callback);
|
|
108
|
+
traverseNode(node.brick, callback, childPath);
|
|
108
109
|
break;
|
|
109
110
|
|
|
110
111
|
case "Resolvable":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","node","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (node: StoryboardNode) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback);\n } else {\n traverseNode(nodeOrNodes, callback);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback);\n }\n}\n\nfunction traverseNode(node: StoryboardNode
|
|
1
|
+
{"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","path","node","childPath","concat","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (\n node: StoryboardNode,\n path: StoryboardNode[]\n) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback, []);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback, []);\n } else {\n traverseNode(nodeOrNodes, callback, []);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback, path);\n }\n}\n\nfunction traverseNode(\n node: StoryboardNode,\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!node) {\n return;\n }\n callback(node, path);\n const childPath = path.concat(node);\n switch (node.type) {\n case \"Root\":\n traverseNodes(node.routes, callback, childPath);\n traverseNodes(node.templates, callback, childPath);\n break;\n case \"Route\":\n traverseNodes(node.context, callback, childPath);\n traverseNode(node.redirect, callback, childPath);\n traverseNode(node.menu, callback, childPath);\n traverseNodes(node.providers, callback, childPath);\n traverseNodes(node.defineResolves, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Template\":\n traverseNodes(node.bricks, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n break;\n case \"Brick\":\n traverseNode(node.if, callback, childPath);\n traverseNodes(node.events, callback, childPath);\n traverseNodes(node.lifeCycle, callback, childPath);\n traverseNodes(node.useBrick, callback, childPath);\n traverseNodes(node.useBackend, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Slot\":\n case \"UseBrickEntry\":\n case \"UseBackendEntry\":\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Context\":\n traverseNode(node.resolve, callback, childPath);\n traverseNodes(node.onChange, callback, childPath);\n break;\n case \"ResolvableCondition\":\n case \"ResolvableMenu\":\n traverseNode(node.resolve, callback, childPath);\n break;\n case \"ResolveLifeCycle\":\n traverseNodes(node.resolves, callback, childPath);\n break;\n case \"Event\":\n case \"EventCallback\":\n case \"SimpleLifeCycle\":\n case \"ConditionalEvent\":\n traverseNodes(node.handlers, callback, childPath);\n break;\n case \"EventHandler\":\n traverseNodes(node.callback, callback, childPath);\n break;\n case \"ConditionalLifeCycle\":\n traverseNodes(node.events, callback, childPath);\n break;\n case \"BrickMenu\":\n traverseNode(node.brick, callback, childPath);\n break;\n case \"Resolvable\":\n case \"FalseMenu\":\n case \"StaticMenu\":\n case \"UnknownLifeCycle\":\n case \"LiteralCondition\":\n break;\n default:\n // istanbul ignore if\n if (process.env.NODE_ENV === \"development\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n throw new Error(`Unhandled storyboard node type: ${node.type}`);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,101 +1,102 @@
|
|
|
1
1
|
/** Traverse a storyboard AST. */
|
|
2
2
|
export function traverseStoryboard(ast, callback) {
|
|
3
|
-
traverseNode(ast, callback);
|
|
3
|
+
traverseNode(ast, callback, []);
|
|
4
4
|
}
|
|
5
5
|
/** Traverse any node(s) in storyboard AST. */
|
|
6
6
|
|
|
7
7
|
export function traverse(nodeOrNodes, callback) {
|
|
8
8
|
if (Array.isArray(nodeOrNodes)) {
|
|
9
|
-
traverseNodes(nodeOrNodes, callback);
|
|
9
|
+
traverseNodes(nodeOrNodes, callback, []);
|
|
10
10
|
} else {
|
|
11
|
-
traverseNode(nodeOrNodes, callback);
|
|
11
|
+
traverseNode(nodeOrNodes, callback, []);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
function traverseNodes(nodes, callback) {
|
|
15
|
+
function traverseNodes(nodes, callback, path) {
|
|
16
16
|
if (!nodes) {
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
for (var _node of nodes) {
|
|
21
|
-
traverseNode(_node, callback);
|
|
21
|
+
traverseNode(_node, callback, path);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
function traverseNode(node, callback) {
|
|
25
|
+
function traverseNode(node, callback, path) {
|
|
26
26
|
if (!node) {
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
callback(node);
|
|
30
|
+
callback(node, path);
|
|
31
|
+
var childPath = path.concat(node);
|
|
31
32
|
|
|
32
33
|
switch (node.type) {
|
|
33
34
|
case "Root":
|
|
34
|
-
traverseNodes(node.routes, callback);
|
|
35
|
-
traverseNodes(node.templates, callback);
|
|
35
|
+
traverseNodes(node.routes, callback, childPath);
|
|
36
|
+
traverseNodes(node.templates, callback, childPath);
|
|
36
37
|
break;
|
|
37
38
|
|
|
38
39
|
case "Route":
|
|
39
|
-
traverseNodes(node.context, callback);
|
|
40
|
-
traverseNode(node.redirect, callback);
|
|
41
|
-
traverseNode(node.menu, callback);
|
|
42
|
-
traverseNodes(node.providers, callback);
|
|
43
|
-
traverseNodes(node.defineResolves, callback);
|
|
44
|
-
traverseNodes(node.children, callback);
|
|
40
|
+
traverseNodes(node.context, callback, childPath);
|
|
41
|
+
traverseNode(node.redirect, callback, childPath);
|
|
42
|
+
traverseNode(node.menu, callback, childPath);
|
|
43
|
+
traverseNodes(node.providers, callback, childPath);
|
|
44
|
+
traverseNodes(node.defineResolves, callback, childPath);
|
|
45
|
+
traverseNodes(node.children, callback, childPath);
|
|
45
46
|
break;
|
|
46
47
|
|
|
47
48
|
case "Template":
|
|
48
|
-
traverseNodes(node.bricks, callback);
|
|
49
|
-
traverseNodes(node.context, callback);
|
|
49
|
+
traverseNodes(node.bricks, callback, childPath);
|
|
50
|
+
traverseNodes(node.context, callback, childPath);
|
|
50
51
|
break;
|
|
51
52
|
|
|
52
53
|
case "Brick":
|
|
53
|
-
traverseNode(node.if, callback);
|
|
54
|
-
traverseNodes(node.events, callback);
|
|
55
|
-
traverseNodes(node.lifeCycle, callback);
|
|
56
|
-
traverseNodes(node.useBrick, callback);
|
|
57
|
-
traverseNodes(node.useBackend, callback);
|
|
58
|
-
traverseNodes(node.context, callback);
|
|
59
|
-
traverseNodes(node.children, callback);
|
|
54
|
+
traverseNode(node.if, callback, childPath);
|
|
55
|
+
traverseNodes(node.events, callback, childPath);
|
|
56
|
+
traverseNodes(node.lifeCycle, callback, childPath);
|
|
57
|
+
traverseNodes(node.useBrick, callback, childPath);
|
|
58
|
+
traverseNodes(node.useBackend, callback, childPath);
|
|
59
|
+
traverseNodes(node.context, callback, childPath);
|
|
60
|
+
traverseNodes(node.children, callback, childPath);
|
|
60
61
|
break;
|
|
61
62
|
|
|
62
63
|
case "Slot":
|
|
63
64
|
case "UseBrickEntry":
|
|
64
65
|
case "UseBackendEntry":
|
|
65
|
-
traverseNodes(node.children, callback);
|
|
66
|
+
traverseNodes(node.children, callback, childPath);
|
|
66
67
|
break;
|
|
67
68
|
|
|
68
69
|
case "Context":
|
|
69
|
-
traverseNode(node.resolve, callback);
|
|
70
|
-
traverseNodes(node.onChange, callback);
|
|
70
|
+
traverseNode(node.resolve, callback, childPath);
|
|
71
|
+
traverseNodes(node.onChange, callback, childPath);
|
|
71
72
|
break;
|
|
72
73
|
|
|
73
74
|
case "ResolvableCondition":
|
|
74
75
|
case "ResolvableMenu":
|
|
75
|
-
traverseNode(node.resolve, callback);
|
|
76
|
+
traverseNode(node.resolve, callback, childPath);
|
|
76
77
|
break;
|
|
77
78
|
|
|
78
79
|
case "ResolveLifeCycle":
|
|
79
|
-
traverseNodes(node.resolves, callback);
|
|
80
|
+
traverseNodes(node.resolves, callback, childPath);
|
|
80
81
|
break;
|
|
81
82
|
|
|
82
83
|
case "Event":
|
|
83
84
|
case "EventCallback":
|
|
84
85
|
case "SimpleLifeCycle":
|
|
85
86
|
case "ConditionalEvent":
|
|
86
|
-
traverseNodes(node.handlers, callback);
|
|
87
|
+
traverseNodes(node.handlers, callback, childPath);
|
|
87
88
|
break;
|
|
88
89
|
|
|
89
90
|
case "EventHandler":
|
|
90
|
-
traverseNodes(node.callback, callback);
|
|
91
|
+
traverseNodes(node.callback, callback, childPath);
|
|
91
92
|
break;
|
|
92
93
|
|
|
93
94
|
case "ConditionalLifeCycle":
|
|
94
|
-
traverseNodes(node.events, callback);
|
|
95
|
+
traverseNodes(node.events, callback, childPath);
|
|
95
96
|
break;
|
|
96
97
|
|
|
97
98
|
case "BrickMenu":
|
|
98
|
-
traverseNode(node.brick, callback);
|
|
99
|
+
traverseNode(node.brick, callback, childPath);
|
|
99
100
|
break;
|
|
100
101
|
|
|
101
102
|
case "Resolvable":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","node","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (node: StoryboardNode) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback);\n } else {\n traverseNode(nodeOrNodes, callback);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback);\n }\n}\n\nfunction traverseNode(node: StoryboardNode
|
|
1
|
+
{"version":3,"file":"traverseStoryboard.js","names":["traverseStoryboard","ast","callback","traverseNode","traverse","nodeOrNodes","Array","isArray","traverseNodes","nodes","path","node","childPath","concat","type","routes","templates","context","redirect","menu","providers","defineResolves","children","bricks","if","events","lifeCycle","useBrick","useBackend","resolve","onChange","resolves","handlers","brick","process","env","NODE_ENV","Error"],"sources":["../../src/traverseStoryboard.ts"],"sourcesContent":["import type { StoryboardNode, StoryboardNodeRoot } from \"./interfaces\";\n\nexport type TraverseCallback = (\n node: StoryboardNode,\n path: StoryboardNode[]\n) => void;\n\n/** Traverse a storyboard AST. */\nexport function traverseStoryboard(\n ast: StoryboardNodeRoot,\n callback: TraverseCallback\n): void {\n traverseNode(ast, callback, []);\n}\n\n/** Traverse any node(s) in storyboard AST. */\nexport function traverse(\n nodeOrNodes: StoryboardNode | StoryboardNode[],\n callback: TraverseCallback\n): void {\n if (Array.isArray(nodeOrNodes)) {\n traverseNodes(nodeOrNodes, callback, []);\n } else {\n traverseNode(nodeOrNodes, callback, []);\n }\n}\n\nfunction traverseNodes(\n nodes: StoryboardNode[],\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n traverseNode(node, callback, path);\n }\n}\n\nfunction traverseNode(\n node: StoryboardNode,\n callback: TraverseCallback,\n path: StoryboardNode[]\n): void {\n if (!node) {\n return;\n }\n callback(node, path);\n const childPath = path.concat(node);\n switch (node.type) {\n case \"Root\":\n traverseNodes(node.routes, callback, childPath);\n traverseNodes(node.templates, callback, childPath);\n break;\n case \"Route\":\n traverseNodes(node.context, callback, childPath);\n traverseNode(node.redirect, callback, childPath);\n traverseNode(node.menu, callback, childPath);\n traverseNodes(node.providers, callback, childPath);\n traverseNodes(node.defineResolves, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Template\":\n traverseNodes(node.bricks, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n break;\n case \"Brick\":\n traverseNode(node.if, callback, childPath);\n traverseNodes(node.events, callback, childPath);\n traverseNodes(node.lifeCycle, callback, childPath);\n traverseNodes(node.useBrick, callback, childPath);\n traverseNodes(node.useBackend, callback, childPath);\n traverseNodes(node.context, callback, childPath);\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Slot\":\n case \"UseBrickEntry\":\n case \"UseBackendEntry\":\n traverseNodes(node.children, callback, childPath);\n break;\n case \"Context\":\n traverseNode(node.resolve, callback, childPath);\n traverseNodes(node.onChange, callback, childPath);\n break;\n case \"ResolvableCondition\":\n case \"ResolvableMenu\":\n traverseNode(node.resolve, callback, childPath);\n break;\n case \"ResolveLifeCycle\":\n traverseNodes(node.resolves, callback, childPath);\n break;\n case \"Event\":\n case \"EventCallback\":\n case \"SimpleLifeCycle\":\n case \"ConditionalEvent\":\n traverseNodes(node.handlers, callback, childPath);\n break;\n case \"EventHandler\":\n traverseNodes(node.callback, callback, childPath);\n break;\n case \"ConditionalLifeCycle\":\n traverseNodes(node.events, callback, childPath);\n break;\n case \"BrickMenu\":\n traverseNode(node.brick, callback, childPath);\n break;\n case \"Resolvable\":\n case \"FalseMenu\":\n case \"StaticMenu\":\n case \"UnknownLifeCycle\":\n case \"LiteralCondition\":\n break;\n default:\n // istanbul ignore if\n if (process.env.NODE_ENV === \"development\") {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n throw new Error(`Unhandled storyboard node type: ${node.type}`);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StoryboardNode, StoryboardNodeRoot } from "./interfaces";
|
|
2
|
-
export declare type TraverseCallback = (node: StoryboardNode) => void;
|
|
2
|
+
export declare type TraverseCallback = (node: StoryboardNode, path: StoryboardNode[]) => void;
|
|
3
3
|
/** Traverse a storyboard AST. */
|
|
4
4
|
export declare function traverseStoryboard(ast: StoryboardNodeRoot, callback: TraverseCallback): void;
|
|
5
5
|
/** Traverse any node(s) in storyboard AST. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/storyboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Parse storyboard as AST",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/storyboard",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
},
|
|
30
30
|
"sideEffects": false,
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@next-core/brick-types": "^2.81.
|
|
32
|
+
"@next-core/brick-types": "^2.81.8"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@next-core/build-next-libs": "^0.2.14"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "430d0efb56fcc53abd043c4d1f86d6fb769dc639"
|
|
38
38
|
}
|