@next-core/storyboard 0.4.0 → 0.5.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.
@@ -82,6 +82,8 @@ function traverseNode(node, callback, path) {
82
82
  break;
83
83
  case "EventHandler":
84
84
  traverseNodes(node.callback, callback, childPath);
85
+ traverseNodes(node.then, callback, childPath);
86
+ traverseNodes(node.else, callback, childPath);
85
87
  break;
86
88
  case "ConditionalLifeCycle":
87
89
  traverseNodes(node.events, callback, childPath);
@@ -1 +1 @@
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
+ {"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","then","else","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 traverseNodes(node.then, callback, childPath);\n traverseNodes(node.else, 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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"}
@@ -75,6 +75,8 @@ function traverseNode(node, callback, path) {
75
75
  break;
76
76
  case "EventHandler":
77
77
  traverseNodes(node.callback, callback, childPath);
78
+ traverseNodes(node.then, callback, childPath);
79
+ traverseNodes(node.else, callback, childPath);
78
80
  break;
79
81
  case "ConditionalLifeCycle":
80
82
  traverseNodes(node.events, callback, childPath);
@@ -1 +1 @@
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
+ {"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","then","else","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 traverseNodes(node.then, callback, childPath);\n traverseNodes(node.else, 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/storyboard",
3
- "version": "0.4.0",
3
+ "version": "0.5.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",
@@ -34,5 +34,5 @@
34
34
  "devDependencies": {
35
35
  "@next-core/build-next-libs": "^0.2.16"
36
36
  },
37
- "gitHead": "984ae58422d1846d0b1ff868fac4ad1cd6c8e5be"
37
+ "gitHead": "e02a1649bf499939753dc498072aa2be9faa3780"
38
38
  }