awslabs / aws-lambda-powertools-typescript
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 137 units with 836 lines of code in units (46.7% of code).
    • 0 very long units (0 lines of code)
    • 0 long units (0 lines of code)
    • 4 medium size units (110 lines of code)
    • 18 small units (264 lines of code)
    • 115 very small units (462 lines of code)
0% | 0% | 13% | 31% | 55%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
ts0% | 0% | 13% | 31% | 55%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
packages/metrics/src0% | 0% | 28% | 26% | 45%
packages/tracing/src0% | 0% | 20% | 39% | 40%
packages/logger/src0% | 0% | 0% | 36% | 63%
packages/logger/src/formatter0% | 0% | 0% | 73% | 26%
packages/tracing/src/provider0% | 0% | 0% | 0% | 100%
packages/logger/src/config0% | 0% | 0% | 0% | 100%
packages/tracing/src/config0% | 0% | 0% | 0% | 100%
packages/logger/src/log0% | 0% | 0% | 0% | 100%
packages/metrics/src/config0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public serializeMetrics()
in packages/metrics/src/Metrics.ts
34 5 0
public captureLambdaHandler()
in packages/tracing/src/Tracer.ts
27 3 0
public logMetrics()
in packages/metrics/src/Metrics.ts
26 5 1
public captureMethod()
in packages/tracing/src/Tracer.ts
23 3 0
private setOptions()
in packages/logger/src/Logger.ts
20 1 1
private setTracingEnabled()
in packages/tracing/src/Tracer.ts
19 8 1
private createAndPopulateLogItem()
in packages/logger/src/Logger.ts
19 4 3
private storeMetric()
in packages/metrics/src/Metrics.ts
18 4 3
private setLogLevel()
in packages/logger/src/Logger.ts
17 4 1
private setServiceName()
in packages/tracing/src/Tracer.ts
16 7 1
private removeCircularDependencies()
in packages/logger/src/Logger.ts
16 5 0
public formatAttributes()
in packages/logger/src/formatter/PowertoolLogFormatter.ts
15 1 1
public getCodeLocation()
in packages/logger/src/formatter/LogFormatter.ts
15 4 1
private setOptions()
in packages/tracing/src/Tracer.ts
14 1 1
public addDimensions()
in packages/metrics/src/Metrics.ts
14 2 1
public captureAWSClient()
in packages/tracing/src/Tracer.ts
12 4 1
private setCaptureError()
in packages/tracing/src/Tracer.ts
12 4 0
private setCaptureResponse()
in packages/tracing/src/Tracer.ts
12 4 0
public captureColdStartMetric()
in packages/metrics/src/Metrics.ts
12 4 0
public addErrorAsMetadata()
in packages/tracing/src/Tracer.ts
11 3 1