microsoft / BotFramework-WebChat
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
  • 5% duplication:
    • 17,316 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 898 duplicated lines
  • 82 duplicates
system5% (898 lines)
Duplication per Extension
tsx7% (403 lines)
ts4% (255 lines)
js3% (240 lines)
Duplication per Component (primary)
packages/component7% (622 lines)
packages/bundle6% (171 lines)
packages/api2% (67 lines)
packages/directlinespeech2% (19 lines)
packages/core1% (19 lines)
ROOT0% (0 lines)
packages/embed0% (0 lines)
packages/isomorphic-react-dom0% (0 lines)
packages/isomorphic-react0% (0 lines)
packages/playground0% (0 lines)
packages/support0% (0 lines)
scripts0% (0 lines)

Duplication Between Components (50+ lines)

G packages/api packages/api packages/component packages/component packages/api--packages/component 80

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 82 duplicates...
Size#FoldersFilesLinesCode
18 x 2 packages/api/src/hooks
packages/core/src
Composer.tsx
index.ts
17:34 (3%)
60:77 (35%)
view
16 x 2 packages/component/src/Activity
packages/component/src/Activity
CarouselFilmStrip.js
StackedLayout.tsx
148:167 (8%)
136:155 (7%)
view
13 x 2 packages/component/src/SendBox
packages/component/src/SendBox
TextBox.tsx
TextBox.tsx
389:401 (4%)
409:421 (4%)
view
12 x 2 packages/component/src/hooks/internal
packages/directlinespeech/src
BypassSpeechSynthesisPonyfill.js
SpeechSynthesisAudioStreamUtterance.js
95:116 (11%)
16:37 (48%)
view
12 x 2 packages/component/src/Styles/StyleSet
packages/component/src/Styles/StyleSet
CarouselFlipper.ts
SuggestedActions.ts
22:36 (38%)
40:54 (9%)
view
10 x 2 packages/component/src/Styles/StyleSet
packages/component/src/Styles/StyleSet
Toast.ts
Toaster.ts
71:80 (13%)
61:70 (8%)
view
10 x 2 packages/bundle/src
packages/bundle/src
createDirectLine.ts
createDirectLine.ts
18:27 (17%)
32:41 (17%)
view
10 x 2 packages/component/src/Styles/StyleSet
packages/component/src/Styles/StyleSet
CarouselFlipper.ts
SuggestedActions.ts
4:13 (32%)
12:21 (8%)
view
10 x 2 packages/component/src/Styles/StyleSet
packages/component/src/Styles/StyleSet
ConnectivityNotification.ts
WarningNotification.ts
9:19 (55%)
11:21 (37%)
view
10 x 2 packages/component/src/SendBox
packages/component/src/Utils
AutoResizeTextArea.tsx
AccessibleTextArea.tsx
21:30 (13%)
34:43 (16%)
view
10 x 2 packages/api/src/hooks/middleware
packages/component/src/Middleware/GroupActivities
createDefaultGroupActivitiesMiddlewar...
createCoreMiddleware.js
37:53 (25%)
31:47 (27%)
view
10 x 2 packages/component/src/SendBox
packages/component/src/Utils
AutoResizeTextArea.tsx
AccessibleTextArea.tsx
43:52 (13%)
53:62 (16%)
view
10 x 2 packages/bundle/src/adaptiveCards/Attachment
packages/component/src/Utils/TypeFocusSink
AdaptiveCardRenderer.tsx
getTabIndex.ts
413:422 (2%)
6:15 (34%)
view
10 x 2 packages/component/src/SendBox
packages/component/src/SendBox
SuggestedAction.tsx
SuggestedActions.tsx
49:58 (7%)
239:248 (4%)
view
9 x 2 packages/component/src/SendBox
packages/component/src/SendBox
SuggestedActions.tsx
SuggestedActions.tsx
133:142 (3%)
174:183 (3%)
view
9 x 2 packages/api/src/utils
packages/component/src/Utils
createCustomEvent.ts
createCustomEvent.js
11:25 (52%)
6:20 (75%)
view
9 x 2 packages/component/src/Utils
packages/component/src/Utils
AccessibleInputText.tsx
AccessibleTextArea.tsx
81:89 (9%)
77:85 (14%)
view
9 x 2 packages/bundle/src
packages/bundle/src
createCognitiveServicesSpeechServices...
createDirectLineSpeechAdapters.ts
39:48 (14%)
46:55 (13%)
view
9 x 2 packages/bundle/src/adap...tachmentForScreenReader
packages/bundle/src/adap...tachmentForScreenReader
AdaptiveCardAttachment.js
AdaptiveCardAttachment.js
66:74 (7%)
101:109 (7%)
view
9 x 2 packages/bundle/src/adaptiveCards/Attachment
packages/bundle/src/adaptiveCards/Attachment
CommonCard.js
HeroCardContent.tsx
22:33 (52%)
30:41 (39%)
view
Duplicated Units
The list of top 3 duplicated units.
See data for all 3 unit duplicates...
Size#FoldersFilesLinesCode
7 x 2 packages/api/src/hooks/internal
packages/component/src/hooks/internal
useTimer.js
useTimer.js
3:11 
3:11 
view
7 x 2 packages/api/src/hooks/middleware
packages/component/src/Middleware/GroupActivities
createDefaultGroupActivitiesMiddlewar...
createCoreMiddleware.js
56:63 
50:57 
view
6 x 2 packages/component/src/Styles/StyleSet
packages/component/src/Styles/StyleSet
VimeoContent.ts
YouTubeContent.ts
3:9 
3:9 
view