firebase / functions-samples
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
  • 21% duplication:
    • 5,715 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,242 duplicated lines
  • 205 duplicates
system21% (1,242 lines)
Duplication per Extension
js12% (483 lines)
css67% (434 lines)
html26% (325 lines)
Duplication per Component (primary)
linkedin-auth78% (259 lines)
instagram-auth77% (250 lines)
spotify-auth73% (208 lines)
quickstarts34% (128 lines)
username-password-auth36% (78 lines)
email-confirmation36% (74 lines)
fcm-notifications18% (58 lines)
authorized-https-endpoint25% (49 lines)
fulltext-search-firestore12% (36 lines)
exif-images18% (30 lines)
presence-firestore19% (20 lines)
paypal6% (17 lines)
text-moderation7% (17 lines)
coupon-on-purchase22% (12 lines)
authenticated-json-api2% (6 lines)
ROOT0% (0 lines)
testlab-to-slack0% (0 lines)
developer-motivator0% (0 lines)
delete-old-child-nodes0% (0 lines)
limit-children0% (0 lines)
ffmpeg-convert-audio0% (0 lines)
google-sheet-sync0% (0 lines)
moderate-images0% (0 lines)
bigquery-import0% (0 lines)
youtube0% (0 lines)
publish-model0% (0 lines)
url-shortener0% (0 lines)
image-maker0% (0 lines)
lastmodified-tracking0% (0 lines)
fulltext-search0% (0 lines)
okta-auth0% (0 lines)
convert-images0% (0 lines)
stripe0% (0 lines)
image-sharp0% (0 lines)
message-translation0% (0 lines)
survey-app-update0% (0 lines)
delete-unused-accounts-cron0% (0 lines)
remote-config-diff0% (0 lines)
child-count0% (0 lines)
template-handlebars0% (0 lines)
vision-annotate-images0% (0 lines)
assistant-say-number0% (0 lines)
minimal-webhook0% (0 lines)
generate-thumbnail0% (0 lines)
github-to-slack0% (0 lines)

Duplication Between Components (50+ lines)

G instagram-auth instagram-auth linkedin-auth linkedin-auth instagram-auth--linkedin-auth 442 spotify-auth spotify-auth instagram-auth--spotify-auth 361 quickstarts quickstarts instagram-auth--quickstarts 211 username-password-auth username-password-auth instagram-auth--username-password-auth 178 linkedin-auth--spotify-auth 423 linkedin-auth--quickstarts 173 linkedin-auth--username-password-auth 170 spotify-auth--username-password-auth 149 quickstarts--spotify-auth 152 quickstarts--username-password-auth 141 fcm-notifications fcm-notifications fcm-notifications--instagram-auth 137 fcm-notifications--linkedin-auth 111 fcm-notifications--spotify-auth 90 fcm-notifications--quickstarts 90 fcm-notifications--username-password-auth 76 email-confirmation email-confirmation email-confirmation--instagram-auth 130 email-confirmation--linkedin-auth 130 email-confirmation--spotify-auth 59 email-confirmation--quickstarts 83 email-confirmation--username-password-auth 59 email-confirmation--fcm-notifications 59 authorized-https-endpoint authorized-https-endpoint authorized-https-endpoint--instagram-auth 85 authorized-https-endpoint--linkedin-auth 85 authorized-https-endpoint--spotify-auth 64 authorized-https-endpoint--quickstarts 98 authorized-https-endpoint--username-password-auth 64 authorized-https-endpoint--fcm-notifications 64 authorized-https-endpoint--email-confirmation 59 exif-images exif-images exif-images--instagram-auth 58 exif-images--linkedin-auth 58

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 205 duplicates...
Size#FoldersFilesLinesCode
46 x 2 email-confirmation/public
instagram-auth
main.css
main.css
17:62 (100%)
17:62 (100%)
view
46 x 2 email-confirmation/public
linkedin-auth
main.css
main.css
17:62 (100%)
17:62 (100%)
view
46 x 2 instagram-auth
linkedin-auth
main.css
main.css
17:62 (100%)
17:62 (100%)
view
45 x 2 linkedin-auth/public
spotify-auth/public
main.js
main.js
16:79 (100%)
16:79 (100%)
view
38 x 2 instagram-auth/public
quickstarts/email-users/public
main.css
main.css
17:54 (100%)
17:54 (100%)
view
36 x 2 linkedin-auth/public
spotify-auth/public
popup.html
popup.html
22:67 (59%)
22:64 (59%)
view
36 x 2 instagram-auth/public
spotify-auth/public
popup.html
popup.html
22:67 (59%)
22:64 (59%)
view
36 x 2 instagram-auth/public
linkedin-auth/public
popup.html
popup.html
22:67 (59%)
22:67 (59%)
view
36 x 2 linkedin-auth/public
spotify-auth/public
main.css
main.css
17:52 (81%)
17:52 (81%)
view
35 x 2 quickstarts/email-users/public
spotify-auth/public
main.css
main.css
17:51 (92%)
17:51 (79%)
view
35 x 2 linkedin-auth/public
quickstarts/email-users/public
main.css
main.css
17:51 (79%)
17:51 (92%)
view
35 x 2 instagram-auth/public
linkedin-auth/public
main.css
main.css
17:51 (92%)
17:51 (79%)
view
35 x 2 instagram-auth/public
spotify-auth/public
main.css
main.css
17:51 (92%)
17:51 (79%)
view
30 x 2 fcm-notifications/public
spotify-auth/public
main.css
main.css
17:46 (44%)
17:46 (68%)
view
30 x 2 fcm-notifications/public
linkedin-auth/public
main.css
main.css
17:46 (44%)
17:46 (68%)
view
30 x 2 fcm-notifications/public
quickstarts/email-users/public
main.css
main.css
17:46 (44%)
17:46 (78%)
view
30 x 2 fcm-notifications/public
instagram-auth/public
main.css
main.css
17:46 (44%)
17:46 (78%)
view
28 x 2 instagram-auth/public
quickstarts/email-users/public
main.js
main.js
16:54 (65%)
16:54 (65%)
view
25 x 2 linkedin-auth/functions
spotify-auth/functions
index.js
index.js
133:162 (26%)
127:156 (26%)
view
24 x 2 instagram-auth/public
spotify-auth/public
main.js
main.js
43:77 (55%)
45:79 (53%)
view
Duplicated Units
The list of top 6 duplicated units.
See data for all 6 unit duplicates...
Size#FoldersFilesLinesCode
20 x 2 coupon-on-purchase/functions
coupon-on-purchase/functions
index.js
index.js
50:76 
84:110 
view
16 x 2 spotify-auth/public
linkedin-auth/public
main.js
main.js
19:38 
19:38 
view
15 x 2 quickstarts/email-users/public
instagram-auth/public
main.js
main.js
19:37 
19:37 
view
12 x 2 spotify-auth/public
linkedin-auth/public
main.js
main.js
41:53 
41:53 
view
11 x 2 quickstarts/email-users/public
instagram-auth/public
main.js
main.js
40:51 
40:51 
view
9 x 5 spotify-auth/public
username-password-auth/public
quickstarts/email-users/public
instagram-auth/public
linkedin-auth/public
main.js
main.js
main.js
main.js
main.js
67:76 
101:110 
64:73 
65:74 
67:76 
view