(node,file,r)
| 407 | } |
| 408 | |
| 409 | function analysisMermaid(node,file,r){ |
| 410 | // console.log('analysisMermaid',node) |
| 411 | switch(node.type){ |
| 412 | case "FunctionDeclaration": |
| 413 | traverseFunction(node,{},file) |
| 414 | return true |
| 415 | case "ClassDeclaration": |
| 416 | if(!r.showMethod)break// |
| 417 | traverseClass(node,file) |
| 418 | return true |
| 419 | case "VariableDeclaration": |
| 420 | traverseAst(node,(n)=>{ |
| 421 | if(n.type=="VariableDeclarator"){ |
| 422 | node._name=getValue(n.id) |
| 423 | } |
| 424 | if(n.type=="ObjectExpression"){ |
| 425 | traverseObject(n,node,file) |
| 426 | return true |
| 427 | } |
| 428 | if(n.type=="FunctionExpression"){ |
| 429 | n.id={type:"Identifier",name:node._name,loc:{start:{},end:{}}} |
| 430 | traverseFunction(n,{},file) |
| 431 | } |
| 432 | if(n.type=="NewExpression"){ |
| 433 | r.FlowVarNew[node._name]=getValue(n) |
| 434 | } |
| 435 | }) |
| 436 | return true |
| 437 | } |
| 438 | function traverseClass(node,file){ |
| 439 | node._file=file |
| 440 | node._value=getValue(node.id) |
| 441 | node._flow_id=node._value |
| 442 | if(r.FlowFilter[node._value]===false)return; |
| 443 | r.FlowNode[node._flow_id]=node; |
| 444 | if(r.FlowOne[node._flow_id]){ |
| 445 | r.FlowOne[node._flow_id].unshift(node._value) |
| 446 | }else{ |
| 447 | r.FlowOne[node._flow_id]=[node._value] |
| 448 | } |
| 449 | r.Flow+=` ${node._value}[${node._value}]\nclick ${node._value} "javascript:void(onFlowClick('${node._value}','${file}'))"\n` |
| 450 | r.FDPNode[node._flow_id]={id:node._value,w:node._value.length*gD3fontSize/1.6+gD3fontSize*2,text:`[${node._value}]`} |
| 451 | r.UMLClass[node._value]={} |
| 452 | r.UML+=` class ${node._value}{\n`; |
| 453 | for(let member of node.body.body){ |
| 454 | switch(member.type){ |
| 455 | case "MethodDefinition": |
| 456 | member._value=getValue(member) |
| 457 | member._flow_id=member._value |
| 458 | let func=member.value |
| 459 | let _name=getValue(member.key)=="constructor"?'#'+node._value:getValue(member.key) |
| 460 | func.id={type:"Identifier",name:_name,loc:{start:{},end:{}}} |
| 461 | traverseFunction(func,node,file,true) |
| 462 | break; |
| 463 | case "PropertyDefinition": |
| 464 | traverseProperty(member,node,file,r) |
| 465 | break |
| 466 | } |
nothing calls this directly
no test coverage detected