kepler.rl
Duplication

Intro
  • For duplication, we look at places in code where there are six 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
  • 12% duplication:
    • 41,070 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,184 duplicated lines
  • 174 duplicates
system12% (5,184 lines)
Duplication per Extension
js12% (5,184 lines)
Duplication per Component (primary)
website-gatsby/src89% (1,471 lines)
website/src89% (1,459 lines)
src/components5% (913 lines)
src/layers12% (562 lines)
examples/open-modal64% (164 lines)
examples/custom-reducer77% (160 lines)
src/deckgl-layers11% (107 lines)
examples/demo-app5% (94 lines)
src/constants3% (66 lines)
src/reducers1% (34 lines)
examples/node-app38% (33 lines)
examples/replace-component14% (28 lines)
bindings/kepler.gl-jupyter4% (23 lines)
src/styles1% (18 lines)
src/schemas1% (14 lines)
src/localization<1% (12 lines)
src/utils<1% (12 lines)
ROOT10% (8 lines)
examples/custom-theme5% (6 lines)
website-gatsby0% (0 lines)
scripts0% (0 lines)
src/cloud-providers0% (0 lines)
src/middleware0% (0 lines)
src/tasks0% (0 lines)
src0% (0 lines)
src/processors0% (0 lines)
src/actions0% (0 lines)
src/connect0% (0 lines)

Duplication Between Components (50+ lines)

G examples/custom-reducer examples/custom-reducer examples/open-modal examples/open-modal examples/custom-reducer--examples/open-modal 272 examples/node-app examples/node-app examples/custom-reducer--examples/node-app 54 website-gatsby/src website-gatsby/src website/src website/src website-gatsby/src--website/src 2918 examples/demo-app examples/demo-app website-gatsby/src--examples/demo-app 54 src/components src/components website-gatsby/src--src/components 76 examples/demo-app--website/src 54 examples/demo-app--src/components 121 src/components--website/src 76 src/layers src/layers src/layers--examples/demo-app 60 src/layers--src/components 66

Download: SVG DOT (open online Graphviz editor)

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
Size#FoldersFilesLinesCode
123 x 2 examples/custom-reducer/src/configurations
examples/open-modal/src/configurations
config.js
config.js
21:154 (100%)
21:154 (100%)
view
99 x 2 website-gatsby/src/components/common
website/src/components/common
styled-components.js
styled-components.js
24:130 (100%)
24:130 (100%)
view
87 x 2 website-gatsby/src/components
website/src/components
showcase.js
showcase.js
28:130 (100%)
28:130 (100%)
view
78 x 2 website-gatsby/src/components/common
website/src/components/common
styles.js
styles.js
27:120 (95%)
27:120 (95%)
view
73 x 2 website-gatsby/src/components
website/src/components
footer.js
footer.js
62:151 (52%)
60:149 (55%)
view
68 x 2 website-gatsby/src
website/src
content.js
content.js
43:137 (38%)
41:135 (39%)
view
67 x 2 website-gatsby/src/components/common
website/src/components/common
section.js
section.js
28:102 (100%)
28:102 (100%)
view
64 x 2 website-gatsby/src
website/src
styles.js
styles.js
23:96 (100%)
23:96 (100%)
view
61 x 2 website-gatsby/src/components/common
website/src/components/common
card.js
card.js
25:95 (65%)
25:95 (75%)
view
51 x 2 website-gatsby/src/components
website/src/components
hero.js
hero.js
34:101 (62%)
34:101 (64%)
view
49 x 2 website-gatsby/src
website/src
content.js
content.js
159:220 (27%)
153:214 (28%)
view
49 x 2 website-gatsby/src/components
website/src/components
examples.js
examples.js
31:83 (100%)
31:83 (100%)
view
48 x 2 website-gatsby/src/components/common
website/src/components/common
carousel.js
carousel.js
46:99 (72%)
45:98 (73%)
view
47 x 2 website-gatsby/src/components
website/src/components
tutorials.js
tutorials.js
30:81 (82%)
30:81 (90%)
view
46 x 2 website-gatsby/src/state
website/src/reducers
analytics.js
analytics.js
32:87 (63%)
32:87 (65%)
view
45 x 2 website-gatsby/src/components
website/src/components
features.js
features.js
30:80 (73%)
30:80 (80%)
view
41 x 2 website-gatsby/src/components/common
website/src/components/common
slideshow.js
slideshow.js
27:78 (61%)
27:78 (64%)
view
37 x 2 website-gatsby/src/components/common
website/src/components/common
staggered-scroll-animation.js
staggered-scroll-animation.js
39:81 (75%)
43:85 (69%)
view
32 x 2 website-gatsby/src/components/common
website/src/components/common
swipeable.js
swipeable.js
25:61 (71%)
25:61 (84%)
view
32 x 2 website-gatsby/src/components
website/src/components
home.js
home.js
43:85 (55%)
43:85 (56%)
view
Most Frequent Duplicates
The list of 20 most frequently found duplicates.
Size#FoldersFilesLinesCode
6 x 12 src/layers/point-layer
src/layers/line-layer
examples/demo-app/src/cloud-providers/dropbox
src/layers
src/layers/icon-layer
src/layers/h3-hexagon-layer
src/layers/hexagon-layer
src/layers/cluster-layer
src/layers/arc-layer
src/components/common/icons
...
point-layer-icon.js
line-layer-icon.js
dropbox-icon.js
default-layer-icon.js
icon-layer-icon.js
h3-hexagon-layer-icon.js
hexagon-layer-icon.js
cluster-layer-icon.js
arc-layer-icon.js
map-icon.js
...
26:32 (30%)
26:33 (15%)
26:33 (26%)
26:32 (31%)
26:33 (22%)
26:32 (31%)
26:33 (13%)
26:33 (14%)
26:33 (17%)
26:33 (15%)
...
view
6 x 5 examples/open-modal/src
examples/custom-theme/src
examples/custom-reducer/src
examples/node-app/src
examples/replace-component/src
main.js
main.js
main.js
main.js
main.js
28:34 (100%)
28:34 (100%)
28:34 (100%)
28:34 (100%)
28:34 (100%)
view
6 x 4 website-gatsby/src/components
website/src/components
website/src/components
website-gatsby/src/components
tutorials.js
examples.js
tutorials.js
examples.js
48:54 (10%)
44:50 (12%)
48:54 (11%)
44:50 (12%)
view
7 x 4 src/components/filters/filter-panels
src/components/filters/filter-panels
src/components/filters/filter-panels
src/components/filters/filter-panels
multi-select-filter-panel.js
time-range-filter-panel.js
single-select-filter-panel.js
range-filter-panel.js
44:50 (16%)
63:69 (12%)
44:50 (16%)
44:50 (16%)
view
6 x 4 bindings/kepler.gl-jupyt...lib/keplergl/components
src/components
website-gatsby/src/components
website/src/components
app.js
kepler-gl.js
app.js
app.js
118:123 (5%)
68:73 (1%)
31:36 (24%)
31:36 (27%)
view
8 x 4 website-gatsby/src/components/common
website/src/components/common
website-gatsby/src/components/common
website/src/components/common
staggered-scroll-animation.js
carousel.js
carousel.js
staggered-scroll-animation.js
48:58 (16%)
58:68 (12%)
59:69 (12%)
52:62 (15%)
view
9 x 4 examples/demo-app/src
bindings/kepler.gl-jupyt...lib/keplergl/components
website-gatsby/src/components
website/src/components
app.js
app.js
app.js
app.js
72:81 (3%)
114:123 (8%)
27:36 (36%)
27:36 (40%)
view
7 x 4 website-gatsby/src/components
website/src/components
website/src/components
website-gatsby/src/components
tutorials.js
examples.js
tutorials.js
examples.js
56:63 (12%)
53:60 (14%)
56:63 (13%)
53:60 (14%)
view
13 x 4 website/src/components
website/src/components
website-gatsby/src/components
website-gatsby/src/components
hero.js
footer.js
hero.js
footer.js
110:122 (16%)
163:175 (9%)
112:124 (16%)
168:180 (9%)
view
9 x 4 src/components/filters/filter-panels
src/components/filters/filter-panels
src/components/filters/filter-panels
src/components/filters/filter-panels
multi-select-filter-panel.js
time-range-filter-panel.js
single-select-filter-panel.js
range-filter-panel.js
55:63 (20%)
75:83 (15%)
55:63 (20%)
55:63 (20%)
view
7 x 4 src/layers/point-layer
src/layers/arc-layer
src/layers
src/layers/scenegraph-layer
point-layer.js
arc-layer.js
aggregation-layer.js
scenegraph-layer.js
169:179 (2%)
116:126 (4%)
217:227 (3%)
120:130 (6%)
view
10 x 4 website/src/components
website/src/components
website-gatsby/src/components
website-gatsby/src/components
hero.js
footer.js
hero.js
footer.js
57:70 (12%)
110:123 (7%)
57:70 (12%)
112:125 (7%)
view
7 x 4 src/components/filters/filter-panels
src/components/filters/filter-panels
src/components/filters/filter-panels
src/components/filters/filter-panels
single-select-filter-panel.js
range-filter-panel.js
multi-select-filter-panel.js
time-range-filter-panel.js
29:35 (16%)
29:35 (16%)
29:35 (16%)
35:41 (12%)
view
7 x 4 website-gatsby/src/components
website/src/components
website/src/components
website-gatsby/src/components
tutorials.js
examples.js
tutorials.js
examples.js
40:47 (12%)
35:42 (14%)
40:47 (13%)
35:42 (14%)
view
6 x 4 src/layers/h3-hexagon-layer
src/layers/s2-geometry-layer
src/layers/arc-layer
src/layers/icon-layer
h3-hexagon-layer.js
s2-geometry-layer.js
arc-layer.js
icon-layer.js
157:162 (2%)
194:199 (2%)
140:145 (3%)
199:204 (2%)
view
7 x 3 website-gatsby/src/components/common
src/components/common
website/src/components/common
styled-components.js
styled-components.js
styled-components.js
37:43 (7%)
205:211 (1%)
37:43 (7%)
view
17 x 3 website-gatsby/src/components
examples/demo-app/src
website/src/components
app.js
app.js
app.js
26:49 (68%)
71:94 (6%)
26:49 (77%)
view
6 x 3 src/layers/scenegraph-layer
src/layers/icon-layer
src/layers/trip-layer
scenegraph-info-modal.js
icon-info-modal.js
trip-info-modal.js
25:30 (9%)
56:61 (5%)
29:34 (12%)
view
12 x 3 src/components/filters/filter-panels
src/components/filters/filter-panels
src/components/filters/filter-panels
multi-select-filter-panel.js
time-range-filter-panel.js
single-select-filter-panel.js
29:40 (27%)
35:46 (20%)
29:40 (27%)
view
6 x 3 src/constants
src/constants
src/constants
default-settings.js
default-settings.js
default-settings.js
519:524 (1%)
575:580 (1%)
585:590 (1%)
view