aws / aws-toolkit-vscode
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 2,818 units with 30,985 lines of code in units (75.4% of code).
    • 0 very complex units (0 lines of code)
    • 2 complex units (318 lines of code)
    • 22 medium complex units (1,262 lines of code)
    • 145 simple units (4,953 lines of code)
    • 2,649 very simple units (24,452 lines of code)
0% | 1% | 4% | 15% | 78%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
ts0% | 1% | 4% | 16% | 78%
js0% | 0% | 0% | 12% | 87%
java0% | 0% | 0% | 0% | 100%
go0% | 0% | 0% | 0% | 100%
cs0% | 0% | 0% | 0% | 100%
py0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/shared0% | 2% | 6% | 17% | 73%
src/lambda0% | 0% | 2% | 21% | 75%
src/s30% | 0% | 6% | 13% | 80%
src/awsexplorer0% | 0% | 12% | 0% | 87%
src/stepFunctions0% | 0% | 3% | 17% | 78%
src/ecs0% | 0% | 11% | 12% | 76%
src/credentials0% | 0% | 3% | 18% | 77%
src/eventSchemas0% | 0% | 0% | 20% | 79%
src/dynamicResources0% | 0% | 0% | 25% | 74%
src/iot0% | 0% | 0% | 7% | 92%
src/cloudWatchLogs0% | 0% | 0% | 23% | 76%
src/ssmDocument0% | 0% | 0% | 9% | 90%
src/cdk0% | 0% | 0% | 22% | 77%
build-scripts0% | 0% | 0% | 18% | 81%
media/js0% | 0% | 0% | 13% | 86%
src/webviews0% | 0% | 0% | 12% | 87%
src/apprunner0% | 0% | 0% | 3% | 96%
src/integrationTest0% | 0% | 0% | 37% | 62%
src0% | 0% | 0% | 0% | 100%
src/apigateway0% | 0% | 0% | 0% | 100%
src/ecr0% | 0% | 0% | 0% | 100%
src/testFixtures0% | 0% | 0% | 0% | 100%
test-scripts0% | 0% | 0% | 0% | 100%
src/feedback0% | 0% | 0% | 0% | 100%
resources/debugger0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
public async makeConfig()
in src/shared/sam/debugger/awsSamDebugger.ts
197 33 3
export function getResourcesForHandlerFromTemplateDatum()
in src/shared/cloudformation/templateRegistry.ts
121 26 3
public async run()
in src/shared/utilities/childProcess.ts
87 17 1
function getParseErrorDescription()
in src/lambda/config/templates.ts
36 17 1
private convertElement()
in src/shared/wizards/wizardForm.ts
33 15 3
public validate()
in src/shared/sam/debugger/awsSamDebugConfigurationValidator.ts
47 14 2
lambdaPackageType: isImageLambdaConfig()
in src/shared/sam/localLambdaRunner.ts
52 14 1
47 13 2
export async function makeCodeLenses()
in src/shared/codelens/codeLensUtils.ts
70 13 5
export async function runLambdaFunction()
in src/shared/sam/localLambdaRunner.ts
55 13 3
export function validateResource()
in src/shared/cloudformation/cloudformation.ts
36 13 2
function getReffedThing()
in src/shared/cloudformation/cloudformation.ts
18 13 3
private scanSourceFile()
in src/shared/typescriptLambdaHandlerSearch.ts
38 13 1
export async function installCli()
in src/shared/utilities/cliUtils.ts
85 13 3
function createMessageReceivedFunc()
in src/lambda/commands/invokeLambda.ts
70 13 3
private setupWebviewPanel()
in src/stepFunctions/commands/visualizeStateMachine/aslVisualization.ts
62 12 1
export async function uploadFileCommand()
in src/s3/commands/uploadFile.ts
92 12 6
function doTraverseAndReplace()
in src/shared/sam/debugger/awsSamDebugConfigurationValidator.ts
31 12 2
public async provideDebugConfigurations()
in src/shared/sam/debugger/awsSamDebugger.ts
65 12 2
public async showInputBox()
in src/shared/multiStepInputFlowController.ts
72 12 10