File Complexity Overall
  • There are 332 files with units, with 38,431 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 0 complex files (McCabe index sum 126-250; 0 lines of code)
    • 12 medium complex files (McCabe index sum 51-125; 4,893 lines of code)
    • 28 slightly complex files (McCabe index sum 26-50; 8,183 lines of code)
    • 292 simple files (McCabe index sum 1-25; 25,355 lines of code)
  • 417 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 12% | 21% | 65%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
js0% | 0% | 32% | 26% | 41%
tsx0% | 0% | 12% | 16% | 71%
scala0% | 0% | 9% | 22% | 68%
ts0% | 0% | 3% | 23% | 72%
py0% | 0% | 0% | 0% | 100%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
public0% | 0% | 32% | 26% | 40%
fronts-client0% | 0% | 8% | 20% | 71%
app0% | 0% | 9% | 22% | 68%
cdk0% | 0% | 0% | 0% | 100%
scripts0% | 0% | 0% | 0% | 100%
grunt-configs0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
collection.js
in public/src/js/models/collections
449 35 103 23 10
drag-dispatcher.js
in public/src/js/utils
253 13 80 32 24
content-api.js
in public/src/js/modules
285 15 73 26 17
315 8 70 22 29
front.js
in public/src/js/models/config
295 24 70 24 19
editor.js
in public/src/js/models/article
211 16 68 32 17
stale.js
in public/src/js/troubleshoot/views
365 30 66 18 9
EditionsController.scala
in app/controllers
517 26 64 12 8
ArticleMetaForm.tsx
in fronts-client/src/components/form
1289 5 61 5 51
form.ts
in fronts-client/src/util
317 21 56 18 12
PackageController.scala
in app/controllers
346 12 51 15 12
sparklines.js
in public/src/js/utils
251 18 51 20 8
article.js
in public/src/js/models/collections
321 24 48 15 6
fronts.js
in public/src/js/widgets/columns
231 11 48 21 19
frontsapi.scala
in app/model
507 27 46 9 4
ArticleBody.tsx
in fronts-client/src/components/card/article
640 6 41 6 15
droppable.js
in public/src/js/modules
181 22 40 22 5
validateImageSrc.ts
in fronts-client/src/util
366 10 39 11 8
InputImage.tsx
in fronts-client/src/components/inputs
588 3 39 7 30
validate-image-src.js
in public/src/js/utils
161 8 38 24 11
Collection.tsx
in fronts-client/src/components/FrontsEdit/CollectionComponents
459 18 37 8 19
FaciaToolController.scala
in app/controllers
383 9 35 9 14
config-collection-backfill.js
in public/src/js/widgets
141 16 34 24 5
ContainerThumbnails.scala
in app/thumbnails
190 6 33 17 11
layout.js
in public/src/js/models
164 22 33 20 4
faciaApi.ts
in fronts-client/src/services
377 19 32 8 4
CollectionsQueries.scala
in app/services/editions/db
409 12 31 8 6
Collections.ts
in fronts-client/src/actions
547 18 31 6 5
recipeQuery.ts
in fronts-client/src/services
285 7 31 11 14
latest-articles.js
in public/src/js/models/collections
198 17 31 16 7
UpdateMessage.scala
in app/updates
125 17 30 24 2
EditionsTemplating.scala
in app/services/editions
274 11 29 11 4
collection.js
in public/src/js/models/config
165 14 29 18 7
autocomplete.js
in public/src/js/widgets
113 7 29 26 10
IssueQueries.scala
in app/services/editions/db
380 14 28 7 6
CAPIUtils.ts
in fronts-client/src/util
127 2 28 22 25
images.js
in public/src/js/models/article
35 2 28 80 15
PackageQueries.scala
in app/services/editions/db
303 12 27 9 6
card.ts
in fronts-client/src/util
412 7 27 7 12
101 3 26 26 17
107 2 25 23 24
EditionsCard.scala
in app/model/editions
297 5 24 8 8
Package.scala
in app/model/packages
197 5 24 12 11
Card.tsx
in fronts-client/src/components/card
483 1 24 5 24
index.ts
in fronts-client/src/lib/createAsyncResourceBundle
500 9 23 5 6
persistence.js
in public/src/js/models/config
119 12 23 19 5
FaciaApiIO.scala
in app/tools
196 12 22 11 3
Acl.scala
in app/util
121 5 22 18 9
FeastPublicationTarget.scala
in app/services/editions/publishing
256 8 22 9 6
S3.scala
in app/services
212 12 22 10 7
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...