Duplication Overall
- 19% duplication:
- 30,879 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 5,932 duplicated lines
- 691 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 356 | x 2 | libs/@guardian/source-de...ment-kitchen/.storybooklibs/@guardian/source/.storybook | 1:389 (100%)1:389 (100%) | view | |
| 353 | x 2 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source/.storybook | 1:384 (97%)1:385 (99%) | view | |
| 353 | x 2 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source-de...ment-kitchen/.storybook | 1:384 (97%)1:385 (99%) | view | |
| 155 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 7:172 (97%)7:172 (97%) | view | |
| 79 | x 2 | libs/@guardian/react-crossword/.storybook/previewlibs/@guardian/source/.storybook/preview | 4:91 (100%)4:91 (100%) | view | |
| 79 | x 2 | libs/@guardian/react-crossword/.storybook/previewlibs/@guardian/source-de...chen/.storybook/preview | 4:91 (100%)4:91 (100%) | view | |
| 79 | x 2 | libs/@guardian/source-de...chen/.storybook/previewlibs/@guardian/source/.storybook/preview | 4:91 (100%)4:91 (100%) | view | |
| 72 | x 2 | libs/@guardian/source-de...ment-kitchen/.storybooklibs/@guardian/source/.storybook | 3:88 (100%)2:88 (100%) | view | |
| 43 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 163:208 (12%)73:118 (26%) | view | |
| 33 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 313:347 (9%)133:167 (20%) | view | |
| 27 | x 2 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source-de...ment-kitchen/.storybook | 27:57 (50%)45:75 (37%) | view | |
| 27 | x 2 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source/.storybook | 27:57 (50%)45:75 (37%) | view | |
| 24 | x 2 | libs/@guardian/consent-manager/srclibs/@guardian/consent-manager/src | 61:84 (16%)97:120 (16%) | view | |
| 21 | x 2 | libs/@guardian/consent-manager/srclibs/@guardian/consent-manager/src | 29:49 (14%)62:82 (14%) | view | |
| 21 | x 2 | libs/@guardian/consent-manager/srclibs/@guardian/consent-manager/src | 29:49 (14%)98:118 (14%) | view | |
| 20 | x 2 | libs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/button | 69:91 (9%)35:57 (39%) | view | |
| 18 | x 2 | libs/@guardian/source/sr...-components/choice-cardlibs/@guardian/source/sr...-components/choice-card | 73:90 (23%)306:324 (6%) | view | |
| 17 | x 2 | libs/@guardian/source-de...nents/expanding-wrapperlibs/@guardian/source-de...nents/expanding-wrapper | 75:91 (11%)91:107 (11%) | view | |
| 17 | x 2 | libs/@guardian/consent-managerlibs/@guardian/libs | 8:25 (100%)8:25 (100%) | view | |
| 17 | x 2 | libs/@guardian/react-crosswordlibs/@guardian/source-development-kitchen | 4:26 (100%)4:26 (100%) | view | |
| 17 | x 2 | libs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...-components/choice-card | 161:183 (11%)222:243 (9%) | view | |
| 16 | x 2 | libs/@guardian/source/src/react-components/columnslibs/@guardian/source/src/react-components/columns | 28:43 (5%)190:205 (5%) | view | |
| 16 | x 2 | libs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...t-components/text-input | 68:85 (11%)107:124 (8%) | view | |
| 16 | x 2 | libs/@guardian/source-de...ment-kitchen/.storybooklibs/@guardian/source/.storybook | 4:20 (100%)4:20 (100%) | view | |
| 15 | x 2 | libs/@guardian/source/src/react-components/columnslibs/@guardian/source/src/react-components/columns | 230:244 (4%)255:269 (4%) | view | |
| 15 | x 2 | libs/@guardian/source/src/react-components/columnslibs/@guardian/source/src/react-components/columns | 279:293 (4%)303:317 (4%) | view | |
| 15 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 58:73 (4%)28:43 (9%) | view | |
| 15 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 88:103 (4%)43:58 (9%) | view | |
| 15 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 118:133 (4%)58:73 (9%) | view | |
| 15 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 283:298 (4%)118:133 (9%) | view | |
| 15 | x 2 | libs/@guardian/source-development-kitchenlibs/@guardian/source | 4:23 (88%)4:22 (68%) | view | |
| 15 | x 2 | libs/@guardian/react-crosswordlibs/@guardian/source | 4:23 (88%)4:22 (68%) | view | |
| 14 | x 2 | libs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...t-components/text-input | 23:36 (25%)33:46 (35%) | view | |
| 14 | x 2 | libs/@guardian/source/lib/jest-matcherslibs/@guardian/source/lib/jest-matchers | 26:41 (53%)44:59 (35%) | view | |
| 14 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 30:43 (4%)15:28 (8%) | view | |
| 14 | x 2 | libs/@guardian/source-de...omponents/numeric-inputlibs/@guardian/source/sr...t-components/text-input | 17:34 (24%)84:101 (18%) | view | |
| 14 | x 2 | libs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/components | 12:27 (9%)11:26 (11%) | view | |
| 14 | x 2 | libs/@guardian/source/src/react-components/radiolibs/@guardian/source/src/react-components/radio | 110:123 (12%)156:169 (9%) | view | |
| 13 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 18:30 (2%)271:283 (2%) | view | |
| 13 | x 2 | libs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/src/react-components/radio | 181:193 (11%)151:163 (11%) | view | |
| 13 | x 2 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source/.storybook | 8:21 (76%)7:20 (81%) | view | |
| 13 | x 2 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source-de...ment-kitchen/.storybook | 8:21 (76%)7:20 (81%) | view | |
| 13 | x 2 | libs/@guardian/source/sr...s/__deprecated__/colourlibs/@guardian/source/src/foundations | 5:17 (10%)23:35 (44%) | view | |
| 13 | x 2 | libs/@guardian/source/sr...ct-components/text-arealibs/@guardian/source/sr...t-components/text-input | 57:73 (24%)72:88 (16%) | view | |
| 12 | x 2 | libs/@guardian/source/src/react-components/columnslibs/@guardian/source/src/react-components/columns | 265:276 (3%)289:300 (3%) | view | |
| 12 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 84:95 (2%)207:218 (2%) | view | |
| 12 | x 2 | libs/@guardian/source/src/react-components/linklibs/@guardian/source/src/react-components/link | 9:21 (19%)30:42 (6%) | view | |
| 11 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 21:31 (2%)61:71 (2%) | view | |
| 11 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 21:31 (2%)209:219 (2%) | view | |
| 11 | x 2 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 21:31 (2%)249:259 (2%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 16 | libs/@guardian/source/src/react-components/iconslibs/@guardian/source/src/react-components/radiolibs/@guardian/source/src/react-components/labellibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...omponents/user-feedbacklibs/@guardian/source/src/react-components/linklibs/@guardian/source-de...c/react-components/logolibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...omponents/user-feedbacklibs/@guardian/source/src/react-components/radio... | 88:93 (6%)40:45 (5%)61:66 (3%)42:47 (5%)27:32 (9%)82:87 (3%)10:15 (10%)57:62 (4%)27:32 (11%)71:76 (4%)... | view | |
| 6 | x 16 | libs/@guardian/source/src/react-components/iconslibs/@guardian/source/src/react-components/radiolibs/@guardian/source/src/react-components/labellibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...omponents/user-feedbacklibs/@guardian/source/src/react-components/linklibs/@guardian/source-de...c/react-components/logolibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...omponents/user-feedbacklibs/@guardian/source/src/react-components/radio... | 89:94 (6%)41:46 (5%)62:67 (3%)43:48 (5%)28:33 (9%)83:88 (3%)11:16 (10%)58:63 (4%)28:33 (11%)72:77 (4%)... | view | |
| 6 | x 14 | libs/@guardian/source/src/react-components/iconslibs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...ct-components/accordionlibs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...-components/choice-cardlibs/@guardian/source/src/react-components/linklibs/@guardian/source/sr...omponents/user-feedbacklibs/@guardian/source/src/react-components/labellibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...-components/choice-card... | 101:106 (6%)118:123 (5%)59:64 (9%)164:169 (4%)85:90 (7%)138:143 (3%)70:75 (9%)183:188 (3%)149:154 (4%)319:324 (2%)... | view | |
| 6 | x 14 | libs/@guardian/source/src/react-components/iconslibs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...ct-components/accordionlibs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...-components/choice-cardlibs/@guardian/source/src/react-components/linklibs/@guardian/source/sr...omponents/user-feedbacklibs/@guardian/source/src/react-components/labellibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...-components/choice-card... | 100:105 (6%)117:122 (5%)58:63 (9%)163:168 (4%)84:89 (7%)137:142 (3%)69:74 (9%)182:187 (3%)148:153 (4%)317:323 (2%)... | view | |
| 6 | x 11 | libs/@guardian/source/sr...ct-components/accordionlibs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...-components/choice-cardlibs/@guardian/source/src/react-components/linklibs/@guardian/source/src/react-components/labellibs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...-components/choice-cardlibs/@guardian/source/src/react-components/selectlibs/@guardian/source/src/react-components/linklibs/@guardian/source/sr...act-components/checkbox... | 57:62 (9%)162:167 (4%)83:88 (7%)136:141 (3%)181:186 (3%)116:121 (5%)316:322 (2%)126:131 (4%)67:72 (9%)147:152 (4%)... | view | |
| 6 | x 8 | libs/@guardian/ab-reactlibs/@guardian/pulselibs/@guardian/libslibs/@guardian/ab-corelibs/@guardian/identity-authlibs/@guardian/identity-auth-frontendlibs/@guardian/core-web-vitalslibs/@guardian/consent-manager | 9:14 (50%)6:11 (50%)8:13 (54%)8:13 (54%)8:13 (54%)8:13 (54%)8:13 (54%)11:16 (54%) | view | |
| 6 | x 7 | libs/@guardian/ab-corelibs/@guardian/identity-auth-frontendlibs/@guardian/identity-authlibs/@guardian/core-web-vitalslibs/@guardian/libslibs/@guardian/ab-reactlibs/@guardian/consent-manager | 9:14 (54%)9:14 (54%)9:14 (54%)9:14 (54%)9:14 (54%)10:15 (50%)12:17 (54%) | view | |
| 6 | x 7 | libs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/linklibs/@guardian/source/src/react-components/labellibs/@guardian/source/src/react-components/linklibs/@guardian/source/sr...ct-components/text-arealibs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/select | 15:21 (11%)36:42 (3%)20:26 (23%)15:21 (9%)23:29 (20%)50:56 (2%)24:30 (4%) | view | |
| 6 | x 7 | libs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brand | 7:12 (50%)7:12 (50%)7:12 (50%)7:12 (50%)7:12 (50%)7:12 (50%)7:12 (50%) | view | |
| 6 | x 7 | libs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brandlibs/@guardian/source/src/react-components/brand | 8:14 (50%)8:14 (50%)8:14 (50%)8:14 (50%)8:14 (50%)8:14 (50%)8:14 (50%) | view | |
| 6 | x 7 | libs/@guardian/ab-corelibs/@guardian/identity-auth-frontendlibs/@guardian/identity-authlibs/@guardian/core-web-vitalslibs/@guardian/libslibs/@guardian/ab-reactlibs/@guardian/consent-manager | 10:16 (54%)10:16 (54%)10:16 (54%)10:16 (54%)10:16 (54%)11:17 (50%)13:19 (54%) | view | |
| 6 | x 6 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 23:28 (1%)63:68 (1%)88:93 (1%)211:216 (1%)251:256 (1%)276:281 (1%) | view | |
| 6 | x 6 | libs/@guardian/identity-auth-frontendlibs/@guardian/identity-authlibs/@guardian/ab-corelibs/@guardian/core-web-vitalslibs/@guardian/libslibs/@guardian/consent-manager | 4:10 (54%)4:10 (54%)4:10 (54%)4:10 (54%)4:10 (54%)7:13 (54%) | view | |
| 6 | x 6 | libs/@guardian/identity-auth-frontendlibs/@guardian/identity-authlibs/@guardian/ab-corelibs/@guardian/core-web-vitalslibs/@guardian/libslibs/@guardian/consent-manager | 5:11 (54%)5:11 (54%)5:11 (54%)5:11 (54%)5:11 (54%)8:14 (54%) | view | |
| 6 | x 6 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 21:26 (1%)61:66 (1%)86:91 (1%)209:214 (1%)249:254 (1%)274:279 (1%) | view | |
| 6 | x 6 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 25:30 (1%)65:70 (1%)90:95 (1%)213:218 (1%)253:258 (1%)278:283 (1%) | view | |
| 6 | x 6 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 22:27 (1%)62:67 (1%)87:92 (1%)210:215 (1%)250:255 (1%)275:280 (1%) | view | |
| 6 | x 6 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 24:29 (1%)64:69 (1%)89:94 (1%)212:217 (1%)252:257 (1%)277:282 (1%) | view | |
| 6 | x 6 | libs/@guardian/ab-corelibs/@guardian/identity-auth-frontendlibs/@guardian/identity-authlibs/@guardian/core-web-vitalslibs/@guardian/libslibs/@guardian/consent-manager | 6:12 (54%)6:12 (54%)6:12 (54%)6:12 (54%)6:12 (54%)9:15 (54%) | view | |
| 6 | x 5 | libs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...t-components/text-inputlibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/src/react-components/labellibs/@guardian/source/src/react-components/select | 88:93 (4%)68:73 (3%)66:71 (4%)49:54 (3%)56:61 (4%) | view | |
| 6 | x 5 | libs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...t-components/text-inputlibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/src/react-components/select | 92:98 (4%)72:78 (3%)81:87 (4%)47:53 (5%)84:90 (4%) | view | |
| 6 | x 5 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 261:266 (1%)201:206 (1%)227:232 (1%)265:270 (1%)111:116 (3%) | view | |
| 6 | x 5 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 233:238 (1%)171:176 (1%)197:202 (1%)235:240 (1%)81:86 (3%) | view | |
| 6 | x 5 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 247:252 (1%)186:191 (1%)212:217 (1%)250:255 (1%)96:101 (3%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 16:21 (3%)16:21 (3%)91:96 (3%)91:96 (3%) | view | |
| 6 | x 4 | libs/@guardian/source/src/react-components/labellibs/@guardian/source/src/react-components/radiolibs/@guardian/source/src/react-components/radiolibs/@guardian/source/sr...act-components/checkbox | 180:185 (3%)115:120 (5%)161:166 (4%)146:151 (4%) | view | |
| 6 | x 4 | libs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...ct-components/text-arealibs/@guardian/source-de...omponents/numeric-inputlibs/@guardian/source/sr...t-components/text-input | 120:125 (6%)142:147 (5%)92:97 (5%)148:153 (5%) | view | |
| 6 | x 4 | libs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/button | 96:101 (2%)106:111 (2%)116:121 (2%)126:131 (2%) | view | |
| 6 | x 4 | libs/@guardian/source-de...omponents/numeric-inputlibs/@guardian/source/sr...ct-components/text-arealibs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...t-components/text-input | 73:80 (10%)60:67 (11%)90:97 (8%)75:82 (7%) | view | |
| 6 | x 4 | libs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/src/react-components/labellibs/@guardian/source/src/react-components/radio | 34:40 (5%)48:54 (4%)53:59 (3%)62:68 (4%) | view | |
| 6 | x 4 | libs/@guardian/source-de...omponents/numeric-inputlibs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...t-components/text-inputlibs/@guardian/source/sr...ct-components/text-area | 24:29 (2%)16:21 (4%)15:20 (3%)15:20 (20%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 89:94 (1%)92:97 (1%)96:101 (1%)51:56 (3%) | view | |
| 6 | x 4 | libs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/sr...t-components/text-inputlibs/@guardian/source/src/react-components/labellibs/@guardian/source/src/react-components/select | 93:98 (4%)60:65 (3%)41:46 (3%)64:69 (4%) | view | |
| 6 | x 4 | libs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-plugins | 70:75 (15%)89:94 (12%)61:66 (18%)72:77 (13%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/components | 29:35 (5%)41:47 (5%)54:60 (5%)67:73 (5%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 15:20 (3%)15:20 (3%)90:95 (3%)90:95 (3%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 275:280 (1%)216:221 (1%)242:247 (1%)280:285 (1%) | view | |
| 6 | x 4 | libs/@guardian/source-de...omponents/numeric-inputlibs/@guardian/source/sr...ct-components/text-arealibs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...t-components/text-input | 72:78 (10%)59:65 (11%)89:95 (8%)74:80 (7%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formatslibs/@guardian/react-crossword/stories/formats | 26:31 (1%)66:71 (1%)214:219 (1%)254:259 (1%) | view | |
| 6 | x 4 | libs/@guardian/source-de...omponents/numeric-inputlibs/@guardian/source/sr...ct-components/text-arealibs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...t-components/text-input | 70:77 (10%)57:64 (11%)87:94 (8%)72:79 (7%) | view | |
| 6 | x 4 | libs/@guardian/source-de...omponents/numeric-inputlibs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...t-components/text-inputlibs/@guardian/source/sr...ct-components/text-area | 25:30 (2%)17:22 (4%)16:21 (3%)16:21 (20%) | view | |
| 6 | x 4 | libs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/buttonlibs/@guardian/source/src/react-components/button | 136:141 (2%)146:151 (2%)156:161 (2%)166:171 (2%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/components | 21:26 (17%)23:28 (17%)37:42 (4%)39:44 (17%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/components | 16:22 (9%)15:21 (12%)18:24 (19%)14:20 (18%) | view | |
| 6 | x 4 | libs/@guardian/source/sr...ct-components/accordionlibs/@guardian/source/sr...act-components/checkboxlibs/@guardian/source/src/react-components/selectlibs/@guardian/source/sr...ct-components/accordion | 57:63 (18%)148:154 (5%)101:107 (6%)45:50 (6%) | view | |
| 6 | x 4 | libs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/componentslibs/@guardian/react-crossword/src/components | 89:94 (4%)113:118 (4%)124:129 (4%)141:146 (4%) | view | |
| 6 | x 4 | libs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-plugins | 68:74 (15%)87:93 (12%)59:65 (18%)70:76 (13%) | view | |
| 6 | x 4 | libs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-pluginslibs/@guardian/source/sr...n-tokens/cobalt-plugins | 66:73 (15%)84:92 (12%)56:64 (18%)67:75 (13%) | view | |
| 6 | x 3 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source/.storybooklibs/@guardian/source-de...ment-kitchen/.storybook | 108:113 (1%)109:114 (1%)109:114 (1%) | view | |
| 6 | x 3 | libs/@guardian/react-crossword/.storybooklibs/@guardian/source/.storybooklibs/@guardian/source-de...ment-kitchen/.storybook | 40:46 (1%)41:47 (1%)41:47 (1%) | view |
Duplicated Units
The list of top 1 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 16 | x 2 | libs/@guardian/libslibs/@guardian/consent-manager | 8:25 8:25 | view |
About This Analysis
- 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...
- To learn more about duplications and techniques for eliminating duplication, Sokrates recommends the following resources:
- Avoid Repetition, MartinFlower.com (IEEE Software article)
- Refactoring duplicated code, sourcemaking.com
- Beck Design Rules, MartinFowler.com
- DRY (Don't Repeat Yourself) Principle, Wikipedia
- The Cut-and-Paste Programming Software Development Anti-Pattern, sourcemaking.com
- Code Smells / Duplicated Code, Jeff Atwood, codinghorror.com:
- "Duplicated code is the bane of software development. Stamp out duplication whenever possible. You should always be on the lookout for more subtle cases of near-duplication, too. Don't Repeat Yourself!"
- Reducing Coupling, MartinFlower.com (IEEE Software article):
- "There are several ways to describe coupling, but it boils down to this: If changing one module in a program requires changing another module, then coupling exists. ... Duplication always implies coupling, because changing one piece of duplicate code implies changing the other."