CRAP Complexity Coverage Location
11.74 10 20/27 (74.07%) crap/complexity.service.ts (L46 - L98)
        return lintResult.messages.map((messageData) => {
            let complexity: string | undefined;
            let functionName: string | undefined;
            if (messageData.messageId === "enum") {
                const matches = messageData.message.match(this.enumRegex);
                complexity = "1";
                functionName = matches?.groups?.name;
            } else if (messageData.messageId === "class") {
                const matches = messageData.message.match(this.classRegex);
                complexity = "1";
                functionName = matches?.groups?.name;
            } else if (messageData.messageId === "export") {
                complexity = "1";
                functionName = "export";
            } else if (messageData.messageId === "function") {
                const matches = messageData.message.match(this.functionRegex);
                complexity = matches?.groups?.complexity;
                functionName = matches?.groups?.name;
            } else {
                this.logger.error("Unknown message ID.", { messageData, path: sourcePath });
                return null;
            }

            if (!messageData.endLine || !messageData.endColumn) {
                this.logger.error("No end location.", { messageData, path: sourcePath });
                return null;
            }

            if (!complexity || !functionName) {
                this.logger.error("Could not compute complexity.", { messageData, path: sourcePath });
                return null;
            }

            const result: FunctionComplexity = {
                start: {
                    line: messageData.line,
                    column: messageData.column,
                },
                end: {
                    line: messageData.endLine,
                    column: messageData.endColumn,
                },
                complexity: parseInt(complexity, 10),
                functionName,
                type: messageData.messageId,
            };

            if (this.configService.getHtmlReportDir()) {
                result.sourceCode = lines.slice(messageData.line - 1, messageData.endLine).join("\n");
            }

            return result;
        });