cdklabs / awscdk-change-analyzer
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 6% duplication:
    • 6,144 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 423 duplicated lines
  • 34 duplicates
system6% (423 lines)
Duplication per Extension
ts4% (223 lines)
tsx10% (118 lines)
js55% (62 lines)
html76% (20 lines)
Duplication per Component (primary)
packages/@aws-c2a/web-app10% (154 lines)
packages/@aws-c2a/engine5% (96 lines)
packages/@aws-c2a/presets25% (70 lines)
packages/@aws-c2a/models3% (37 lines)
packages/aws-c2a/lib5% (34 lines)
packages/@aws-c2a/visualizer16% (20 lines)
packages/@aws-c2a/rules2% (6 lines)
packages/@aws-c2a/cdk-pipelines-step1% (6 lines)
packages/aws-c2a0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G packages/@aws-c2a/engine packages/@aws-c2a/engine packages/@aws-c2a/presets packages/@aws-c2a/presets packages/@aws-c2a/engine--packages/@aws-c2a/presets 140 packages/aws-c2a/lib packages/aws-c2a/lib packages/@aws-c2a/engine--packages/aws-c2a/lib 68 packages/@aws-c2a/presets--packages/aws-c2a/lib 68

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 34 duplicates...
Size#FoldersFilesLinesCode
27 x 2 packages/@aws-c2a/presets/lib/private
packages/aws-c2a/lib/private
object.ts
object.ts
1:47 (100%)
1:47 (100%)
view
27 x 2 packages/@aws-c2a/engine/lib/private
packages/aws-c2a/lib/private
object.ts
object.ts
1:47 (100%)
1:47 (100%)
view
27 x 2 packages/@aws-c2a/engine/lib/private
packages/@aws-c2a/presets/lib/private
object.ts
object.ts
1:47 (100%)
1:47 (100%)
view
24 x 2 packages/@aws-c2a/engine
packages/@aws-c2a/presets
jest.ts
jest.ts
1:32 (100%)
1:32 (100%)
view
22 x 2 packages/@aws-c2a/web-ap...sView/ChangeDetailsPane
packages/@aws-c2a/web-app/src/HierarchicalView
ChangeDetailsPane.tsx
HieralchicalDetailsPane.tsx
21:42 (20%)
13:34 (32%)
view
15 x 2 packages/@aws-c2a/web-ap...sView/ChangeDetailsPane
packages/@aws-c2a/web-app/src/HierarchicalView
ChangeDetailsPane.tsx
HieralchicalDetailsPane.tsx
43:57 (14%)
40:54 (22%)
view
10 x 2 packages/@aws-c2a/engine...rules/operator-handlers
packages/@aws-c2a/engine...rules/operator-handlers
contains.ts
references.ts
12:22 (40%)
13:23 (40%)
view
10 x 2 packages/@aws-c2a/visualizer
packages/@aws-c2a/web-app
babel.config.js
babel.config.js
2:11 (100%)
2:11 (100%)
view
10 x 2 packages/@aws-c2a/visualizer/public
packages/@aws-c2a/web-app/public
index.html
index.html
1:10 (76%)
1:10 (76%)
view
9 x 2 packages/@aws-c2a/web-app/src/AggregationsView
packages/@aws-c2a/web-app/src/HierarchicalView
AggregationsTab.tsx
HierarchicalTab.tsx
9:17 (37%)
8:16 (34%)
view
8 x 2 packages/@aws-c2a/web-app/src/selectors
packages/@aws-c2a/web-app/src/selectors
diff-stringifier.ts
diff-stringifier.ts
89:96 (5%)
135:142 (5%)
view
7 x 2 packages/@aws-c2a/engine/lib/private
packages/@aws-c2a/models/lib/utils
node.ts
node.ts
4:17 (100%)
4:17 (100%)
view
7 x 2 packages/@aws-c2a/models/lib/utils
packages/aws-c2a/lib/private
node.ts
node.ts
4:17 (100%)
4:17 (100%)
view
7 x 2 packages/@aws-c2a/engine/lib/private
packages/aws-c2a/lib/private
node.ts
node.ts
4:17 (100%)
4:17 (100%)
view
7 x 2 packages/@aws-c2a/models/lib/utils
packages/@aws-c2a/presets/lib/private
node.ts
node.ts
4:17 (100%)
4:17 (100%)
view
7 x 2 packages/@aws-c2a/engine/lib/private
packages/@aws-c2a/presets/lib/private
node.ts
node.ts
4:17 (100%)
4:17 (100%)
view
7 x 2 packages/@aws-c2a/presets/lib/private
packages/aws-c2a/lib/private
node.ts
node.ts
4:17 (100%)
4:17 (100%)
view
7 x 2 packages/@aws-c2a/web-ap...-components/ChangesDiff
packages/@aws-c2a/web-ap...-components/ChangesDiff
DiffSection.tsx
index.tsx
15:21 (9%)
18:24 (20%)
view
6 x 2 packages/@aws-c2a/models
packages/@aws-c2a/rules
babel.config.js
babel.config.js
2:7 (100%)
2:7 (100%)
view
6 x 2 packages/@aws-c2a/engine
packages/@aws-c2a/presets
babel.config.js
babel.config.js
2:7 (100%)
2:7 (100%)
view
Duplicated Units
The list of top 4 duplicated units.
See data for all 4 unit duplicates...
Size#FoldersFilesLinesCode
17 x 2 packages/@aws-c2a/presets
packages/@aws-c2a/engine
jest.ts
jest.ts
13:31 
13:31 
view
8 x 3 packages/aws-c2a/lib/private
packages/@aws-c2a/presets/lib/private
packages/@aws-c2a/engine/lib/private
object.ts
object.ts
object.ts
15:23 
15:23 
15:23 
view
8 x 3 packages/aws-c2a/lib/private
packages/@aws-c2a/presets/lib/private
packages/@aws-c2a/engine/lib/private
object.ts
object.ts
object.ts
30:38 
30:38 
30:38 
view
6 x 4 packages/aws-c2a/lib/private
packages/@aws-c2a/presets/lib/private
packages/@aws-c2a/engine/lib/private
packages/@aws-c2a/models/lib/utils
node.ts
node.ts
node.ts
node.ts
4:10 
4:10 
4:10 
4:10 
view