microsoft / BotFramework-Emulator
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
  • 16% duplication:
    • 39,579 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 6,498 duplicated lines
  • 2,303 duplicates
system16% (6,498 lines)
Duplication per Extension
ts20% (3,511 lines)
tsx14% (2,461 lines)
scss7% (292 lines)
css25% (198 lines)
html8% (20 lines)
js3% (16 lines)
Duplication per Component (primary)
packages/app/client15% (3,159 lines)
packages/extensions/json84% (2,350 lines)
packages/app/main6% (421 lines)
packages/app/shared6% (189 lines)
packages/sdk/ui-react4% (150 lines)
packages/extensions/qnamaker16% (110 lines)
packages/extensions/luis9% (107 lines)
packages/sdk/shared1% (12 lines)
ROOT0% (0 lines)
jestMocks0% (0 lines)
packages/sdk/client0% (0 lines)
packages/tools/test-bot0% (0 lines)
scripts0% (0 lines)

Duplication Between Components (50+ lines)

G packages/app/client packages/app/client packages/app/main packages/app/main packages/app/client--packages/app/main 209 packages/sdk/ui-react packages/sdk/ui-react packages/app/client--packages/sdk/ui-react 68 packages/app/shared packages/app/shared packages/app/main--packages/app/shared 121 packages/extensions/luis packages/extensions/luis packages/extensions/qnamaker packages/extensions/qnamaker packages/extensions/luis--packages/extensions/qnamaker 176 packages/extensions/json packages/extensions/json packages/extensions/json--packages/sdk/ui-react 145

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 2,303 duplicates...
Size#FoldersFilesLinesCode
69 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
2137:2209 (2%)
2213:2285 (2%)
view
67 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
1604:1674 (2%)
1678:1748 (2%)
view
67 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
1069:1140 (2%)
1144:1215 (2%)
view
65 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
538:607 (2%)
611:680 (2%)
view
59 x 2 packages/app/client/src/...mulator/parts/inspector
packages/app/client/src/...mulator/parts/inspector
inspector.spec.tsx
inspector.spec.tsx
69:128 (11%)
232:291 (11%)
view
53 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
1763:1816 (2%)
1820:1873 (2%)
view
53 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
164:217 (2%)
221:274 (2%)
view
53 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
695:748 (2%)
752:805 (2%)
view
53 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
1230:1283 (2%)
1287:1340 (2%)
view
48 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
1960:2008 (2%)
2012:2060 (2%)
view
48 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
1427:1475 (2%)
1479:1527 (2%)
view
48 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
361:409 (2%)
413:461 (2%)
view
48 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
892:940 (2%)
944:992 (2%)
view
45 x 2 packages/app/client/mocks
packages/app/client/mocks
conversationQueueMocks.ts
conversationQueueMocks.ts
234:289 (13%)
378:433 (13%)
view
39 x 2 packages/app/client/mocks
packages/app/client/mocks
conversationQueueMocks.ts
conversationQueueMocks.ts
170:224 (11%)
298:352 (11%)
view
34 x 2 packages/app/client/src/ui/styles/themes
packages/app/client/src/ui/styles/themes
dark.css
light.css
120:157 (13%)
118:155 (14%)
view
33 x 2 packages/app/client/src/state/helpers
packages/app/main/src/state/helpers
editorHelpers.ts
editorHelpers.ts
39:85 (100%)
39:85 (100%)
view
29 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
1350:1379 (1%)
1383:1412 (1%)
view
29 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
815:844 (1%)
848:877 (1%)
view
29 x 2 packages/extensions/json/src
packages/extensions/json/src
mocks.ts
mocks.ts
284:313 (1%)
317:346 (1%)
view
Duplicated Units
The list of top 13 duplicated units.
See data for all 13 unit duplicates...
Size#FoldersFilesLinesCode
16 x 2 packages/app/main/src
packages/app/main/src
protocolHandler.ts
protocolHandler.ts
150:166 
176:192 
view
12 x 2 packages/app/main/src/server/state
packages/app/main/src/server/state
conversation.ts
conversation.ts
333:347 
349:363 
view
11 x 2 packages/app/client/src/state/helpers
packages/app/main/src/state/helpers
editorHelpers.ts
editorHelpers.ts
39:50 
39:50 
view
11 x 2 packages/app/main/src/server/state
packages/app/main/src/server/state
conversation.ts
conversation.ts
365:379 
381:395 
view
10 x 2 packages/app/client/src/state/helpers
packages/app/main/src/state/helpers
editorHelpers.ts
editorHelpers.ts
55:65 
55:65 
view
9 x 2 packages/app/client/src/state/helpers
packages/app/main/src/state/helpers
editorHelpers.ts
editorHelpers.ts
77:86 
77:86 
view
8 x 2 packages/app/client/src/state/helpers
packages/app/main/src/state/helpers
editorHelpers.ts
editorHelpers.ts
67:75 
67:75 
view
8 x 2 packages/app/main/src/se.../conversations/handlers
packages/app/main/src/se.../conversations/handlers
getActivityMembers.ts
getConversationMembers.ts
39:48 
40:50 
view
7 x 3 packages/app/main/src/extensions
packages/extensions/json/src
packages/sdk/ui-react/sr...t/collapsibleJsonViewer
inspector-preload.js
index.spec.tsx
collapsibleJsonViewer.spec.tsx
94:101 
58:65 
44:51 
view
7 x 3 packages/app/main/src/server/utils/createResponse
packages/app/main/src/server/utils/createResponse
packages/app/shared/src/types
createAPIException.ts
createErrorResponse.ts
responseTypes.ts
37:44 
36:43 
90:97 
view
6 x 2 packages/app/main/src/server/utils
packages/app/shared/src
activityVisitor.ts
activityVisitor.ts
126:132 
123:129 
view
6 x 2 packages/extensions/luis/client/src/Luis
packages/extensions/qnamaker/client/src/QnAMaker
Client.ts
Client.ts
62:68 
42:48 
view
6 x 2 packages/sdk/shared/src/emulatorApi
packages/sdk/shared/src/emulatorApi
conversationService.ts
conversationService.ts
90:96 
98:104 
view