File Complexity Overall
  • There are 74 files with units, with 3,499 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)
    • 0 medium complex files (McCabe index sum 51-125; 0 lines of code)
    • 12 slightly complex files (McCabe index sum 26-50; 1,944 lines of code)
    • 62 simple files (McCabe index sum 1-25; 1,555 lines of code)
  • 24 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 0% | 55% | 44%
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% | 0% | 55% | 44%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
packages0% | 0% | 0% | 57% | 42%
scripts0% | 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
index.js
in packages/@pollyjs/adapter/src
229 26 47 21 7
request.js
in packages/@pollyjs/core/src/-private
201 27 40 20 7
index.js
in packages/@pollyjs/persister/src
153 18 38 25 8
polly.js
in packages/@pollyjs/core/src
197 24 37 19 4
index.js
in packages/@pollyjs/adapter-fetch/src
165 8 34 21 11
index.js
in packages/@pollyjs/core/src/server
154 22 34 22 6
index.js
in packages/@pollyjs/adapter-node-http/src
236 12 30 13 5
index.js
in packages/@pollyjs/adapter-puppeteer/src
180 12 30 17 7
index.js
in packages/@pollyjs/ember
78 8 28 36 11
event-emitter.js
in packages/@pollyjs/core/src/-private
131 12 27 21 4
route.js
in packages/@pollyjs/core/src/server
93 13 26 28 5
index.js
in packages/@pollyjs/adapter-xhr/src
127 8 26 20 10
http-base.js
in packages/@pollyjs/core/src/-private
79 12 24 30 10
url.js
in packages/@pollyjs/utils/src/utils
59 6 17 29 6
handler.js
in packages/@pollyjs/core/src/server
94 10 15 16 3
normalize-request.js
in packages/@pollyjs/core/src/utils
50 5 15 30 6
ajax.js
in packages/@pollyjs/persister-rest/src
39 2 13 33 8
get-url-from-options.js
in packages/@pollyjs/adapter-node-http/src/utils
22 1 12 55 12
normalize-recorded-response.js
in packages/@pollyjs/adapter/src/utils
25 3 12 48 5
index.js
in packages/@pollyjs/persister-local-storage/src
41 8 11 27 2
response.js
in packages/@pollyjs/core/src/-private
35 5 10 29 3
http-headers.js
in packages/@pollyjs/core/src/utils
32 4 10 31 4
buffer.js
in packages/@pollyjs/utils/src/utils/serializers
21 1 10 48 10
response.js
in packages/@pollyjs/persister/src/har
43 3 10 23 5
logger.js
in packages/@pollyjs/core/src/-private
53 6 9 17 2
container.js
in packages/@pollyjs/core/src/-private
41 6 9 22 2
request.js
in packages/@pollyjs/persister/src/har
44 3 9 20 5
interceptor.js
in packages/@pollyjs/core/src/-private
30 7 8 27 2
server.js
in packages/@pollyjs/node-server/src
46 2 8 17 6
api.js
in packages/@pollyjs/node-server/src
39 6 8 21 2
index.js
in packages/@pollyjs/persister-rest/src
45 7 8 18 2
browser.config.js
in scripts/rollup
56 3 7 13 3
index.js
in packages/@pollyjs/persister-fs/src
26 6 7 27 2
url-to-options.js
in packages/@pollyjs/adapter-node-http/src/utils
21 1 6 29 6
middleware.js
in packages/@pollyjs/core/src/server
24 2 6 25 4
form-data.js
in packages/@pollyjs/utils/src/utils/serializers
17 1 6 35 6
log.js
in packages/@pollyjs/persister/src/har
37 3 6 16 3
event.js
in packages/@pollyjs/core/src/-private
19 3 5 26 3
index.js
in packages/@pollyjs/persister-in-memory/src
16 4 5 31 2
register-api.js
in packages/@pollyjs/node-server/src/express
43 3 5 12 2
serializer-headers.js
in packages/@pollyjs/adapter-fetch/src/utils
8 1 4 50 4
merge-chunks.js
in packages/@pollyjs/adapter-node-http/src/utils
9 1 4 44 4
validators.js
in packages/@pollyjs/core/src/utils
40 3 4 10 2
merge-configs.js
in packages/@pollyjs/core/src/utils
9 2 4 44 3
guid-for-recording.js
in packages/@pollyjs/core/src/utils
14 3 4 29 2
resolve-xhr.js
in packages/@pollyjs/adapter-xhr/src/utils
14 1 4 29 4
blob.js
in packages/@pollyjs/utils/src/utils/serializers
22 2 4 18 3
parse-url.js
in packages/@pollyjs/core/src/utils
14 1 3 21 3
serialize-response-headers.js
in packages/@pollyjs/adapter-xhr/src/utils
12 1 3 25 3
is-expired.js
in packages/@pollyjs/adapter/src/utils
10 1 3 30 3
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...