facebook / relay
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
  • 13% duplication:
    • 73,026 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 9,706 duplicated lines
  • 48,353 duplicates
system13% (9,706 lines)
Duplication per Extension
rs13% (6,996 lines)
js14% (2,668 lines)
toml6% (42 lines)
Duplication per Component (primary)
compiler/crates13% (7,038 lines)
packages/relay-runtime17% (2,520 lines)
website/src2% (96 lines)
packages/react-relay8% (40 lines)
ROOT2% (12 lines)
website0% (0 lines)
scripts0% (0 lines)
scripts/jest0% (0 lines)
packages/relay-compiler0% (0 lines)
packages/babel-plugin-relay0% (0 lines)
compiler0% (0 lines)
compiler/test-project0% (0 lines)
Longest Duplicates
The list of 50 longest duplicates.
See data for all 48,353 duplicates...
Size#FoldersFilesLinesCode
197 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
153:447 (37%)
156:450 (36%)
view
142 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
553:803 (26%)
569:819 (26%)
view
65 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
81:150 (12%)
83:152 (12%)
view
61 x 2 compiler/crates/relay-tr...ignable_fragment_spread
compiler/crates/relay-tr...ignable_fragment_spread
129:213 (26%)
111:195 (30%)
view
40 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
236:282 (17%)
327:373 (14%)
view
39 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
476:529 (7%)
488:545 (7%)
view
38 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
409:448 (9%)
396:435 (8%)
view
35 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
1695:1733 (1%)
1787:1824 (1%)
view
30 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
155:188 (13%)
134:168 (11%)
view
28 x 2 compiler/crates/relay-lsp/src/completion
compiler/crates/relay-lsp/src/completion
170:201 (7%)
401:432 (7%)
view
28 x 2 compiler/crates/relay-transforms/src
compiler/crates/relay-transforms/src
134:165 (7%)
311:342 (7%)
view
27 x 2 compiler/crates/relay-lsp/src/completion
compiler/crates/relay-lsp/src/completion
210:238 (6%)
404:432 (6%)
view
27 x 2 compiler/crates/relay-lsp/src/completion
compiler/crates/relay-lsp/src/completion
173:201 (6%)
210:238 (6%)
view
27 x 2 compiler/crates/relay-tr...ignable_fragment_spread
compiler/crates/relay-tr...ignable_fragment_spread
23:61 (11%)
19:57 (13%)
view
24 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
128:154 (10%)
93:120 (8%)
view
22 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
483:505 (5%)
466:488 (5%)
view
21 x 2 compiler/crates/graphql-ir/src
compiler/crates/graphql-ir/src
1510:1531 (1%)
1643:1664 (1%)
view
21 x 2 compiler/crates/relay-tr...ignable_fragment_spread
compiler/crates/relay-tr...ignable_fragment_spread
87:118 (8%)
75:106 (10%)
view
21 x 2 compiler/crates/relay-transforms/src
compiler/crates/relay-transforms/src
145:174 (17%)
105:134 (20%)
view
20 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
385:404 (4%)
372:391 (4%)
view
20 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
319:344 (4%)
306:331 (4%)
view
19 x 2 compiler/crates/relay-tr...rc/refetchable_fragment
compiler/crates/relay-tr...rc/refetchable_fragment
64:84 (13%)
121:141 (12%)
view
19 x 2 compiler/crates/errors/src
compiler/crates/errors/src
30:51 (13%)
65:86 (13%)
view
19 x 2 compiler/crates/relay-transforms/src/validations
compiler/crates/relay-transforms/src/validations
195:213 (5%)
228:246 (5%)
view
18 x 2 packages/relay-runtime/store
packages/relay-runtime/store
468:500 (2%)
561:581 (2%)
view
17 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
82:98 (<1%)
105:121 (<1%)
view
17 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
531:551 (3%)
547:567 (3%)
view
17 x 2 packages/relay-runtime/mutations
packages/relay-runtime/store
22:38 (7%)
45:61 (2%)
view
17 x 2 compiler/crates/graphql-ir/src
compiler/crates/graphql-ir/src
1039:1056 (1%)
1064:1081 (1%)
view
17 x 2 compiler/crates/graphql-ir/src
compiler/crates/graphql-ir/src
917:934 (1%)
988:1005 (1%)
view
17 x 2 compiler/crates/relay-compiler/src/build_project
compiler/crates/relay-compiler/src/build_project
600:618 (2%)
699:717 (2%)
view
17 x 2 packages/relay-runtime/handlers/connection
packages/relay-runtime/handlers/connection
131:149 (8%)
201:219 (8%)
view
16 x 2 compiler/crates/graphql-ir/src
compiler/crates/graphql-ir/src
1487:1503 (1%)
1623:1639 (1%)
view
16 x 2 compiler/crates/relay-transforms/src/connections
compiler/crates/relay-transforms/src/connections
191:206 (6%)
229:244 (6%)
view
16 x 2 compiler/crates/relay-compiler/src/build_project
compiler/crates/relay-compiler/src/build_project
490:507 (2%)
700:717 (2%)
view
16 x 2 compiler/crates/relay-compiler/src/build_project
compiler/crates/relay-compiler/src/build_project
490:507 (2%)
601:618 (2%)
view
16 x 2 compiler/crates/relay-lsp/src/completion
compiler/crates/relay-lsp/src/completion
347:368 (4%)
374:395 (4%)
view
16 x 2 compiler/crates/relay-tr...ignable_fragment_spread
compiler/crates/relay-tr...ignable_fragment_spread
251:276 (6%)
227:252 (8%)
view
15 x 2 compiler/crates/relay-tr...rc/refetchable_fragment
compiler/crates/relay-tr...rc/refetchable_fragment
86:100 (10%)
143:157 (10%)
view
15 x 2 compiler/crates/schema/src/in_memory
compiler/crates/schema/src/in_memory
1071:1085 (1%)
1102:1116 (1%)
view
15 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
77:99 (7%)
143:165 (7%)
view
15 x 2 website/src/core
website/src/core
106:120 (6%)
221:235 (6%)
view
15 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
129:151 (3%)
134:156 (3%)
view
15 x 2 compiler/crates/relay-transforms/src/validations
compiler/crates/relay-transforms/src/validations
195:209 (4%)
250:264 (4%)
view
15 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
509:525 (3%)
491:507 (3%)
view
15 x 2 compiler/crates/relay-transforms/src/validations
compiler/crates/relay-transforms/src/validations
228:242 (4%)
250:264 (4%)
view
15 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
29:43 (3%)
37:51 (3%)
view
15 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
203:217 (6%)
299:313 (5%)
view
15 x 2 packages/relay-runtime/multi-actor-environment
packages/relay-runtime/multi-actor-environment
328:342 (3%)
355:369 (3%)
view
15 x 2 packages/relay-runtime/store
packages/relay-runtime/s...rimental-live-resolvers
13:32 (2%)
13:32 (2%)
view
Duplicated Units
The list of top 13 duplicated units.
See data for all 13 unit duplicates...
Size#FoldersFilesLinesCode
66 x 2 packages/relay-runtime/s...rimental-live-resolvers
packages/relay-runtime/store
683:776 
667:760 
view
48 x 2 compiler/crates/relay-tr...ignable_fragment_spread
compiler/crates/relay-tr...ignable_fragment_spread
131:192 
149:210 
view
35 x 2 packages/relay-runtime/s...rimental-live-resolvers
packages/relay-runtime/store
620:666 
604:650 
view
24 x 2 packages/relay-runtime/s...rimental-live-resolvers
packages/relay-runtime/store
787:820 
771:804 
view
11 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
350:363 
337:350 
view
10 x 2 packages/relay-runtime/s...rimental-live-resolvers
packages/relay-runtime/store
63:74 
103:114 
view
10 x 2 compiler/crates/relay-transforms/src
compiler/crates/relay-transforms/src
153:164 
113:124 
view
10 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
141:152 
146:157 
view
9 x 2 packages/relay-runtime/s...rimental-live-resolvers
packages/relay-runtime/store
584:594 
568:578 
view
8 x 2 compiler/crates/relay-tr...ignable_fragment_spread
compiler/crates/relay-tr...ignable_fragment_spread
120:129 
138:147 
view
7 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
287:295 
277:285 
view
7 x 2 compiler/crates/relay-typegen/src
compiler/crates/relay-typegen/src
331:339 
318:326 
view
6 x 2 packages/relay-runtime/multi-actor-environment
packages/relay-runtime/store
486:493 
321:328 
view