microsoft / accessibility-insights-service
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
  • 9% duplication:
    • 10,866 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,019 duplicated lines
  • 194 duplicates
system9% (1,019 lines)
Duplication per Extension
ts7% (732 lines)
js34% (152 lines)
yaml22% (93 lines)
ps124% (42 lines)
Duplication per Component (primary)
packages/web-api-scan-runner14% (135 lines)
packages/privacy-scan-job-manager79% (113 lines)
packages/web-api-scan-job-manager79% (113 lines)
packages/privacy-scan-runner44% (112 lines)
packages/api-contracts25% (93 lines)
packages/azure-services6% (81 lines)
packages/crawler7% (79 lines)
packages/storage-documents16% (43 lines)
packages/cli4% (37 lines)
packages/web-api5% (33 lines)
packages/resource-deployment21% (30 lines)
packages/axe-result-converter14% (26 lines)
packages/web-workers3% (25 lines)
packages/service-library1% (18 lines)
packages/scanner-global-library3% (15 lines)
packages/web-api-send-notification-job-manager19% (14 lines)
packages/web-api-send-notification-runner6% (10 lines)
packages/web-api-client3% (6 lines)
packages/e2e-web-apis30% (6 lines)
packages/web-api-scan-request-sender2% (6 lines)
packages/common1% (6 lines)
packages/logger1% (6 lines)
packages/health-client4% (6 lines)
packages/parallel-workers14% (6 lines)
azure-pipeline0% (0 lines)
ROOT0% (0 lines)
tools0% (0 lines)

Duplication Between Components (50+ lines)

G packages/privacy-scan-job-manager packages/privacy-scan-job-manager packages/web-api-scan-job-manager packages/web-api-scan-job-manager packages/privacy-scan-job-manager--packages/web-api-scan-job-manager 226 packages/privacy-scan-runner packages/privacy-scan-runner packages/web-api-scan-runner packages/web-api-scan-runner packages/privacy-scan-runner--packages/web-api-scan-runner 224 packages/cli packages/cli packages/crawler packages/crawler packages/cli--packages/crawler 70 packages/cli--packages/web-api-scan-runner 54 packages/crawler--packages/web-api-scan-runner 50

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 194 duplicates...
Size#FoldersFilesLinesCode
89 x 2 packages/privacy-scan-job-manager/src/worker
packages/web-api-scan-job-manager/src/worker
worker.ts
worker.ts
14:127 (100%)
14:127 (100%)
view
35 x 2 packages/privacy-scan-runner/src
packages/web-api-scan-runner/src
scan-runner-telemetry-manager.ts
scan-runner-telemetry-manager.ts
9:55 (100%)
9:55 (100%)
view
23 x 2 packages/privacy-scan-runner/src/runner
packages/web-api-scan-runner/src/runner
runner.ts
runner.ts
112:140 (21%)
124:152 (18%)
view
17 x 2 packages/cli/src
packages/web-api-scan-runner/src
module-name-mapper.ts
module-name-mapper.ts
4:27 (100%)
4:26 (100%)
view
15 x 2 packages/cli/src
packages/crawler/src
module-name-mapper.ts
global-overrides.ts
9:27 (88%)
38:56 (40%)
view
15 x 2 packages/crawler/src
packages/web-api-scan-runner/src
global-overrides.ts
module-name-mapper.ts
38:56 (40%)
8:26 (88%)
view
14 x 2 packages/api-contracts
packages/api-contracts
ai-scan-api.yaml
ai-scan-api.yaml
12:25 (3%)
71:84 (3%)
view
14 x 2 packages/api-contracts
packages/api-contracts
ai-scan-api.yaml
ai-scan-api.yaml
45:58 (3%)
112:125 (3%)
view
13 x 2 packages/privacy-scan-runner/src/runner
packages/web-api-scan-runner/src/runner
runner.ts
runner.ts
63:75 (12%)
77:89 (10%)
view
10 x 2 packages/web-api-scan-runner
packages/web-api-send-notification-runner
jest.config.js
jest.config.js
3:13 (100%)
3:13 (100%)
view
10 x 2 packages/crawler/src
packages/crawler/src
setup-crawler-container.ts
setup-crawler-container.ts
23:33 (17%)
54:64 (17%)
view
10 x 2 packages/cli
packages/crawler
jest.config.js
jest.config.js
3:13 (100%)
3:13 (100%)
view
10 x 2 packages/cli
packages/privacy-scan-runner
jest.config.js
jest.config.js
3:13 (100%)
4:14 (100%)
view
10 x 2 packages/cli/src/crawler
packages/crawler/src
crawler-parameters-builder.ts
main.ts
30:39 (18%)
41:50 (24%)
view
10 x 2 packages/crawler
packages/web-api-scan-runner
jest.config.js
jest.config.js
3:13 (100%)
3:13 (100%)
view
10 x 2 packages/axe-result-converter/src
packages/axe-result-converter/src
axe-results-reducer.ts
axe-results-reducer.ts
41:52 (12%)
73:83 (12%)
view
10 x 2 packages/web-api/src/controllers
packages/web-api/src/controllers
batch-scan-result-controller.ts
scan-result-controller.ts
25:36 (15%)
18:29 (25%)
view
10 x 2 packages/cli
packages/web-api-scan-runner
jest.config.js
jest.config.js
3:13 (100%)
3:13 (100%)
view
10 x 2 packages/cli
packages/web-api-send-notification-runner
jest.config.js
jest.config.js
3:13 (100%)
3:13 (100%)
view
10 x 2 packages/azure-services/src/azure-batch
packages/storage-documents/src
pool-load-generator.ts
batch-pool-load-snapshot.ts
20:29 (14%)
8:17 (83%)
view
Duplicated Units
The list of top 14 duplicated units.
See data for all 14 unit duplicates...
Size#FoldersFilesLinesCode
34 x 2 packages/privacy-scan-job-manager/src/worker
packages/web-api-scan-job-manager/src/worker
worker.ts
worker.ts
69:105 
69:105 
view
24 x 2 packages/privacy-scan-job-manager/src/worker
packages/web-api-scan-job-manager/src/worker
worker.ts
worker.ts
35:63 
35:63 
view
13 x 2 packages/privacy-scan-job-manager/src/worker
packages/web-api-scan-job-manager/src/worker
worker.ts
worker.ts
16:29 
16:29 
view
12 x 2 packages/privacy-scan-runner/src
packages/web-api-scan-runner/src
scan-runner-telemetry-manager.ts
scan-runner-telemetry-manager.ts
40:52 
40:52 
view
9 x 2 packages/web-api/src/controllers
packages/web-api/src/controllers
batch-scan-result-controller.ts
scan-result-controller.ts
25:34 
18:27 
view
8 x 2 packages/privacy-scan-job-manager/src/worker
packages/web-api-scan-job-manager/src/worker
worker.ts
worker.ts
116:124 
116:124 
view
8 x 2 packages/privacy-scan-runner/src
packages/web-api-scan-runner/src
scan-runner-telemetry-manager.ts
scan-runner-telemetry-manager.ts
21:29 
21:29 
view
7 x 3 packages/cli/src
packages/crawler/src
packages/web-api-scan-runner/src
module-name-mapper.ts
global-overrides.ts
module-name-mapper.ts
21:29 
50:58 
20:28 
view
7 x 2 packages/privacy-scan-job-manager/src
packages/web-api-scan-job-manager/src
setup-privacy-scan-job-manager-contai...
setup-web-api-scan-job-manager-contai...
10:19 
10:19 
view
7 x 2 packages/privacy-scan-runner/src/runner
packages/web-api-scan-runner/src/runner
runner.ts
runner.ts
150:157 
162:169 
view
6 x 2 packages/privacy-scan-job-manager/src
packages/web-api-scan-job-manager/src
privacy-scan-job-manager-entry-point.ts
web-api-scan-job-manager-entry-point.ts
14:21 
14:21 
view
6 x 2 packages/privacy-scan-job-manager/src/worker
packages/web-api-scan-job-manager/src/worker
worker.ts
worker.ts
107:114 
107:114 
view
6 x 2 packages/privacy-scan-runner/src/scanner
packages/web-api-scan-runner/src/scanner
page-scan-processor.ts
page-scan-processor.ts
44:50 
72:78 
view
6 x 2 packages/web-api-scan-request-sender/src
packages/web-api-send-notification-runner/src
setup-web-api-scan-request-sender-con...
setup-web-api-notification-sender-con...
9:16 
9:16 
view