bazelbuild / rules_nodejs
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
  • 12% duplication:
    • 22,685 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,948 duplicated lines
  • 1,833 duplicates
system12% (2,948 lines)
Duplication per Extension
bzl11% (1,602 lines)
js18% (701 lines)
ts12% (619 lines)
go6% (26 lines)
Duplication per Component (primary)
internal/npm_install32% (859 lines)
ROOT37% (339 lines)
packages/concatjs6% (307 lines)
internal/node11% (177 lines)
internal/common23% (175 lines)
packages/typescript9% (144 lines)
internal/linker11% (127 lines)
packages/node-patches26% (106 lines)
nodejs/private3% (82 lines)
toolchains/cypress40% (78 lines)
internal/coverage60% (77 lines)
internal/providers18% (54 lines)
nodejs6% (53 lines)
packages/esbuild6% (51 lines)
internal/pkg_web16% (43 lines)
packages/terser9% (36 lines)
packages/rollup6% (36 lines)
packages/protractor26% (33 lines)
scripts10% (32 lines)
internal/pkg_npm6% (30 lines)
internal/js_library6% (26 lines)
packages/cypress10% (14 lines)
packages/jasmine8% (14 lines)
internal/copy_repository38% (13 lines)
packages50% (13 lines)
internal/runfiles7% (10 lines)
packages/runfiles10% (10 lines)
toolchains/esbuild4% (9 lines)
tools/stardoc0% (0 lines)
tools0% (0 lines)
tools/npm_packages0% (0 lines)
internal0% (0 lines)
internal/generated_file_test0% (0 lines)
internal/npm_tarballs0% (0 lines)
packages/worker0% (0 lines)
packages/create0% (0 lines)
toolchains0% (0 lines)

Duplication Between Components (50+ lines)

G internal/common internal/common packages/concatjs packages/concatjs internal/common--packages/concatjs 352 packages/typescript packages/typescript internal/common--packages/typescript 181 nodejs/private nodejs/private internal/common--nodejs/private 192 internal/node internal/node internal/common--internal/node 165 internal/providers internal/providers internal/common--internal/providers 166 internal/npm_install internal/npm_install internal/common--internal/npm_install 153 packages/protractor packages/protractor internal/common--packages/protractor 147 packages/terser packages/terser internal/common--packages/terser 148 toolchains/cypress toolchains/cypress internal/common--toolchains/cypress 144 internal/linker internal/linker internal/common--internal/linker 158 packages packages internal/common--packages 140 internal/js_library internal/js_library internal/common--internal/js_library 158 internal/pkg_web internal/pkg_web internal/common--internal/pkg_web 135 packages/rollup packages/rollup internal/common--packages/rollup 135 packages/jasmine packages/jasmine internal/common--packages/jasmine 135 internal/copy_repository internal/copy_repository internal/common--internal/copy_repository 132 nodejs nodejs internal/common--nodejs 132 packages/esbuild packages/esbuild internal/common--packages/esbuild 132 packages/cypress packages/cypress internal/common--packages/cypress 132 packages/concatjs--packages/typescript 293 packages/concatjs--packages/protractor 173 packages/concatjs--packages/terser 172 packages/concatjs--toolchains/cypress 170 packages/concatjs--packages 166 packages/concatjs--packages/rollup 159 packages/concatjs--packages/jasmine 159 packages/concatjs--packages/esbuild 158 packages/concatjs--packages/cypress 156 ROOT ROOT ROOT--internal/common 191 ROOT--packages/concatjs 225 ROOT--packages/typescript 120 ROOT--internal/providers 103 nodejs/private--packages/concatjs 218 nodejs/private--packages/typescript 115 nodejs/private--ROOT 129 internal/node--packages/concatjs 211 internal/node--nodejs/private 91 internal/node--internal/providers 95 packages/node-patches packages/node-patches internal/node--packages/node-patches 182 internal/providers--packages/concatjs 192 internal/providers--nodejs/private 104 internal/npm_install--packages/concatjs 179 packages/protractor--ROOT 100 internal/linker--packages/concatjs 166 internal/js_library--packages/concatjs 166 internal/pkg_web--packages/concatjs 159 internal/copy_repository--packages/concatjs 158 nodejs--packages/concatjs 158 nodejs--ROOT 92 nodejs--nodejs/private 106

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 1,833 duplicates...
Size#FoldersFilesLinesCode
68 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1161:1245 (8%)
699:778 (9%)
view
36 x 2 ROOT
ROOT
npm_deps.bzl
npm_deps.bzl
22:57 (6%)
87:122 (6%)
view
35 x 2 ROOT
ROOT
npm_deps.bzl
npm_deps.bzl
334:368 (6%)
374:408 (6%)
view
33 x 2 packages/concatjs/internal
packages/typescript/internal
ts_config.bzl
ts_config.bzl
17:52 (63%)
19:54 (24%)
view
28 x 2 ROOT
ROOT
npm_deps.bzl
npm_deps.bzl
339:366 (5%)
498:525 (5%)
view
28 x 2 ROOT
ROOT
npm_deps.bzl
npm_deps.bzl
379:406 (5%)
498:525 (5%)
view
24 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1391:1420 (2%)
887:914 (3%)
view
20 x 2 internal/common
packages/concatjs/internal/common
module_mappings.bzl
module_mappings.bzl
1:21 (20%)
1:21 (15%)
view
20 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1302:1327 (2%)
817:840 (2%)
view
20 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
277:300 (2%)
173:194 (2%)
view
19 x 2 packages/concatjs
packages/typescript
replacements.bzl
replacements.bzl
1:22 (61%)
1:22 (76%)
view
18 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1331:1352 (2%)
844:864 (2%)
view
18 x 2 internal/node
packages/node-patches/src
node_patches.js
fs.ts
68:87 (4%)
34:54 (5%)
view
18 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
230:247 (2%)
130:147 (2%)
view
17 x 2 toolchains/cypress
toolchains/cypress
cypress_repositories.bzl
cypress_repositories.bzl
72:90 (13%)
98:116 (13%)
view
17 x 2 nodejs
nodejs/private/providers
directory_file_path.bzl
directory_file_path_info.bzl
14:32 (65%)
34:52 (37%)
view
16 x 2 internal/coverage
internal/coverage
lcov_merger-js.js
lcov_merger.ts
57:72 (22%)
90:116 (28%)
view
16 x 2 ROOT
packages/concatjs
index.bzl
index.bzl
1:18 (15%)
1:18 (55%)
view
16 x 2 packages/concatjs
packages/typescript
index.bzl
index.bzl
1:18 (55%)
1:18 (3%)
view
16 x 2 ROOT
packages/typescript
index.bzl
index.bzl
1:18 (15%)
1:18 (3%)
view
Duplicated Units
The list of top 19 duplicated units.
See data for all 19 unit duplicates...
Size#FoldersFilesLinesCode
27 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1390:1421 
886:915 
view
24 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1301:1328 
816:841 
view
18 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
896:928 
545:563 
view
15 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1046:1063 
631:646 
view
14 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
184:198 
96:110 
view
12 x 2 scripts
scripts
update-esbuild-versions.js
update-yarn-versions.js
29:42 
13:26 
view
11 x 2 internal/pkg_npm
internal/pkg_web
packager.js
assembler.js
84:96 
52:64 
view
10 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1286:1296 
805:815 
view
10 x 2 internal/node
packages/node-patches/src
node_patches.js
fs.ts
296:308 
280:292 
view
9 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
653:664 
422:431 
view
9 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
831:840 
513:522 
view
8 x 2 scripts
scripts
update-yarn-versions.js
update-nodejs-versions.js
54:62 
37:45 
view
8 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
1068:1076 
647:655 
view
7 x 2 packages/concatjs/devserver/concatjs
packages/concatjs/devserver
concatjs.go
main.go
163:170 
137:144 
view
6 x 2 internal/runfiles
packages/runfiles
index.js
runfiles.ts
175:181 
165:171 
view
6 x 2 internal/linker
internal/linker
link_node_modules.ts
index.js
387:402 
269:275 
view
6 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
174:182 
89:95 
view
6 x 2 internal/npm_install
internal/npm_install
generate_build_file.ts
index.js
817:823 
506:512 
view
6 x 2 packages/concatjs/devserver
packages/concatjs/devserver/concatjs
runfile-filesystem.go
concatjs.go
17:23 
108:114 
view