MCPcopy Create free account
hub / github.com/davidkingzyb/SCAST / analysisMermaid

Function analysisMermaid

js/ESTREEJS.js:409–655  ·  view source on GitHub ↗
(node,file,r)

Source from the content-addressed store, hash-verified

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 }

Callers

nothing calls this directly

Calls 5

traverseFunctionFunction · 0.70
traverseClassFunction · 0.70
traverseAstFunction · 0.70
getValueFunction · 0.70
traverseObjectFunction · 0.70

Tested by

no test coverage detected