Genese complexity report

<- assert-statement.ts
Methods : 2
Complexity index : 27.8
Cyclomatic complexity : 7
Cognitive complexity
50 % Correct 1/2
0 % Warning 0/2 (threshold : 10)
50 % Error 1/2 (threshold : 20)
Cyclomatic complexity
50 % Correct 1/2
50 % Warning 1/2 (threshold : 5)
0 % Error 0/2 (threshold : 10)
Methods of assert-statement.ts
run Complexity Index 3.8 Cyclomatic complexity 1
                            
                                
            
            
            // @ts-ignore
            export function run(cstNode: AssertStatement, children: AssertStatementChildren): any { // ------- +0.6 Complexity index (+0.6 atomic)
                const expression = children.expression; // --------------------------------------------------- +0.4 Complexity index (+0.4 atomic)
                
                return { // ---------------------------------------------------------------------------------- +0.1 Complexity index (+0.1 atomic)
                    kind: 'Keyword', // ---------------------------------------------------------------------- +0.2 Complexity index (+0.2 atomic)
                    start: cstNode.location.startOffset, // -------------------------------------------------- +0.4 Complexity index (+0.4 atomic)
                    end: cstNode.location.endOffset, // ------------------------------------------------------ +0.4 Complexity index (+0.4 atomic)
                    pos: cstNode.location.startOffset, // ---------------------------------------------------- +0.4 Complexity index (+0.4 atomic)
                    children: [ // --------------------------------------------------------------------------- +0.1 Complexity index (+0.1 atomic)
                        ...generateAssertStatement(expression) // -------------------------------------------- +1.2 Complexity index (+0.2 atomic, +1 structural)
                    ]
                };
            }
            
                            
                        
generateAssertStatement Complexity Index 24 Cyclomatic complexity 6
                            
                                
            
            
            /**
             * Generate Ast nodes for Assert Statement
             * @param  {Expression[]} expression
             * @returns any
             */
            function generateAssertStatement(expression: Expression[]): any{ // ------------------------ +0.5 Complexity index (+0.5 atomic)
                const assertAst = []; // --------------------------------------------------------------- +0.2 Complexity index (+0.2 atomic)
                if(Array.isArray(expression) && expression.length > 0) { // ---------------------------- +4.0 Complexity index (+1.0 atomic, +3 structural)
                    assertAst.push(  // ---------------------------------------------------------------- +1.2 Complexity index (+0.2 atomic, +1 structural)
                        {
                            kind: 'IfStatement', // ---------------------------------------------------- +0.2 Complexity index (+0.2 atomic)
                            start: expression[0].location.startOffset, // ------------------------------ +0.5 Complexity index (+0.5 atomic)
                            end: expression[0].location.endOffset, // ---------------------------------- +0.5 Complexity index (+0.5 atomic)
                            pos: expression[0].location.startOffset, // -------------------------------- +0.5 Complexity index (+0.5 atomic)
                            children: [ // ------------------------------------------------------------- +0.1 Complexity index (+0.1 atomic)
                                ...[].concat(...[expression[0]]?.map(e => cstToAst(e)) ?? []) // ------- +5.4 Complexity index (+0.9 atomic, +0.5 nesting, +4 structural)
                            ]
                        });
            
                    if(expression[1]) { // ------------------------------------------------------------- +1.8 Complexity index (+0.3 atomic, +0.5 nesting, +1 structural)
                        assertAst.push({ // ------------------------------------------------------------ +1.2 Complexity index (+0.2 atomic, +1 structural)
                            kind: 'ThrowStatement', // ------------------------------------------------- +0.2 Complexity index (+0.2 atomic)
                            start: expression[1].location.startOffset, // ------------------------------ +0.5 Complexity index (+0.5 atomic)
                            end: expression[1].location.endOffset, // ---------------------------------- +0.5 Complexity index (+0.5 atomic)
                            pos: expression[1].location.startOffset, // -------------------------------- +0.5 Complexity index (+0.5 atomic)
                            children: [ // ------------------------------------------------------------- +0.1 Complexity index (+0.1 atomic)
                                ...[].concat(...[expression[1]]?.map(e => cstToAst(e)) ?? []) // ------- +5.9 Complexity index (+0.9 atomic, +1 nesting, +4 structural)
                            ]
                        });
                    }
                }
                return assertAst; // ------------------------------------------------------------------- +0.2 Complexity index (+0.2 atomic)
            }