microsoft / rushstack
File Size

The distribution of size of files (measured in lines of code).

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 578 files with 75,788 lines of code.
    • 1 very long files (16,561 lines of code)
    • 15 long files (10,598 lines of code)
    • 65 medium size files (19,811 lines of codeclsfd_ftr_w_mp_ins)
    • 97 small files (13,824 lines of code)
    • 400 very small files (14,994 lines of code)
21% | 13% | 26% | 18% | 19%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
yaml97% | 0% | 1% | 0% | <1%
ts0% | 18% | 32% | 23% | 25%
js0% | 0% | 76% | 0% | 23%
cmd0% | 0% | 0% | 0% | 100%
yml0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
common/config99% | 0% | 0% | 0% | <1%
apps/rush-lib0% | 16% | 40% | 21% | 21%
apps/api-extractor0% | 34% | 34% | 20% | 10%
apps/api-documenter0% | 46% | 14% | 20% | 18%
apps/heft0% | 14% | 26% | 36% | 22%
libraries/node-core-library0% | 20% | 34% | 17% | 27%
heft-plugins/heft-jest-plugin0% | 41% | 22% | 19% | 16%
libraries/heft-config-file0% | 0% | 97% | 0% | 2%
libraries/debug-certificate-manager0% | 0% | 79% | 0% | 20%
common/scripts0% | 0% | 84% | 0% | 15%
eslint/eslint-config0% | 0% | 72% | 0% | 27%
rush-plugins/rush-azure-storage-build-cache-plugin0% | 0% | 89% | 0% | 10%
libraries/load-themed-styles0% | 0% | 100% | 0% | 0%
libraries/ts-command-line0% | 0% | 19% | 34% | 45%
libraries/rig-package0% | 0% | 88% | 0% | 11%
heft-plugins/heft-webpack5-plugin0% | 0% | 71% | 0% | 28%
common/autoinstallers0% | 0% | 100% | 0% | 0%
libraries/typings-generator0% | 0% | 76% | 0% | 23%
libraries/package-deps-hash0% | 0% | 59% | 38% | 2%
heft-plugins/heft-webpack4-plugin0% | 0% | 68% | 0% | 31%
rush-plugins/rush-amazon-s3-build-cache-plugin0% | 0% | 43% | 29% | 26%
apps/api-extractor-model0% | 0% | 0% | 29% | 70%
eslint/eslint-plugin-packlets0% | 0% | 0% | 47% | 52%
libraries/rushell0% | 0% | 0% | 52% | 47%
eslint/eslint-patch0% | 0% | 0% | 97% | 2%
heft-plugins/heft-storybook-plugin0% | 0% | 0% | 85% | 14%
repo-scripts/repo-toolbox0% | 0% | 0% | 70% | 29%
heft-plugins/heft-sass-plugin0% | 0% | 0% | 56% | 43%
rush-plugins/rush-litewatch-plugin0% | 0% | 0% | 61% | 38%
eslint/eslint-plugin0% | 0% | 0% | 26% | 73%
libraries/stream-collator0% | 0% | 0% | 68% | 31%
apps/rundown0% | 0% | 0% | 32% | 67%
libraries/tree-pattern0% | 0% | 0% | 99% | <1%
libraries/terminal0% | 0% | 0% | 0% | 100%
apps/rush0% | 0% | 0% | 0% | 100%
repo-scripts/doc-plugin-rush-stack0% | 0% | 0% | 0% | 100%
heft-plugins/heft-dev-cert-plugin0% | 0% | 0% | 0% | 100%
eslint/eslint-plugin-security0% | 0% | 0% | 0% | 100%
libraries/rush-sdk0% | 0% | 0% | 0% | 100%
repo-scripts/tombstone0% | 0% | 0% | 0% | 100%
repo-scripts/generate-api-docs0% | 0% | 0% | 0% | 100%
rush-plugins/rush-serve-plugin0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
pnpm-lock.yaml
in common/config/rush
16561 -
TypeScriptBuilder.ts
in apps/heft/src/plugins/TypeScriptPlugin
982 28
RushConfiguration.ts
in apps/rush-lib/src/api
971 80
MarkdownDocumenter.ts
in apps/api-documenter/src/documenters
938 26
YamlDocumenter.ts
in apps/api-documenter/src/documenters
828 33
ApiModelGenerator.ts
in apps/api-extractor/src/generators
810 26
FileSystem.ts
in libraries/node-core-library/src
775 64
ExtractorConfig.ts
in apps/api-extractor/src/api
723 13
Collector.ts
in apps/api-extractor/src/collector
626 26
PublishUtilities.ts
in apps/rush-lib/src/logic
614 20
ExportAnalyzer.ts
in apps/api-extractor/src/analyzer
605 19
ChangeAction.ts
in apps/rush-lib/src/cli/actions
580 24
JestPlugin.ts
in heft-plugins/heft-jest-plugin/src
564 13
DeployManager.ts
in apps/rush-lib/src/logic/deploy
555 14
Utilities.ts
in apps/rush-lib/src/utilities
525 29
BaseInstallManager.ts
in apps/rush-lib/src/logic/base
502 16
RushInstallManager.ts
in apps/rush-lib/src/logic/installManager
483 9
MessageRouter.ts
in apps/api-extractor/src/collector
481 24
PublishAction.ts
in apps/rush-lib/src/cli/actions
473 16
PnpmShrinkwrapFile.ts
in apps/rush-lib/src/logic/pnpm
469 28
ConfigurationFile.ts
in libraries/heft-config-file/src
466 15
CommandLineConfiguration.ts
in apps/rush-lib/src/api
457 8
AstSymbolTable.ts
in apps/api-extractor/src/analyzer
427 15
PackageJsonUpdater.ts
in apps/rush-lib/src/logic
419 8
ProjectBuildCache.ts
in apps/rush-lib/src/logic/buildCache
412 11
Git.ts
in apps/rush-lib/src/logic
400 26
CertificateManager.ts
in libraries/debug-certificate-manager/src
400 10
TaskExecutionManager.ts
in apps/rush-lib/src/logic/taskExecution
390 14
install-run.js
in common/scripts
386 19
Span.ts
in apps/api-extractor/src/analyzer
380 29
install-run.ts
in apps/rush-lib/src/scripts
369 18
ApiReportGenerator.ts
in apps/api-extractor/src/generators
368 6
ProjectTaskRunner.ts
in apps/rush-lib/src/logic/taskExecution
366 6
SetupPackageRegistry.ts
in apps/rush-lib/src/logic/setup
344 9
SubprocessRunnerBase.ts
in apps/heft/src/utilities/subprocess
337 12
_common.js
in eslint/eslint-config/profile
332 1
RushCommandLineParser.ts
in apps/rush-lib/src/cli
324 16
ToSdpConvertHelper.ts
in apps/api-documenter/src/utils
323 15
ProjectChangeAnalyzer.ts
in apps/rush-lib/src/logic
319 8
VersionManager.ts
in apps/rush-lib/src/logic
318 18
AzureStorageBuildCacheProvider.ts
in rush-plugins/rush-azure-storage-build-cache-plugin/src
314 13
BuildTransformer.ts
in heft-plugins/heft-jest-plugin/src/transformers
313 15
DtsRollupGenerator.ts
in apps/api-extractor/src/generators
309 4
Extractor.ts
in apps/api-extractor/src/api
308 8
PhasedScriptAction.ts
in apps/rush-lib/src/cli/scriptActions
307 8
NodeServicePlugin.ts
in apps/heft/src/plugins
298 11
SelectionParameterSet.ts
in apps/rush-lib/src/cli
297 6
Terminal.ts
in libraries/node-core-library/src/Terminal
293 15
DeclarationReferenceGenerator.ts
in apps/api-extractor/src/generators
289 11
WorkspaceInstallManager.ts
in apps/rush-lib/src/logic/installManager
283 6
Files With Most Units (Top 20)
File# lines# units
RushConfiguration.ts
in apps/rush-lib/src/api
971 80
FileSystem.ts
in libraries/node-core-library/src
775 64
YamlDocumenter.ts
in apps/api-documenter/src/documenters
828 33
Span.ts
in apps/api-extractor/src/analyzer
380 29
Utilities.ts
in apps/rush-lib/src/utilities
525 29
TypeScriptBuilder.ts
in apps/heft/src/plugins/TypeScriptPlugin
982 28
PnpmShrinkwrapFile.ts
in apps/rush-lib/src/logic/pnpm
469 28
MarkdownDocumenter.ts
in apps/api-documenter/src/documenters
938 26
Collector.ts
in apps/api-extractor/src/collector
626 26
ApiModelGenerator.ts
in apps/api-extractor/src/generators
810 26
VersionPolicy.ts
in apps/rush-lib/src/api
222 26
Git.ts
in apps/rush-lib/src/logic
400 26
Colors.ts
in libraries/node-core-library/src/Terminal
210 26
CommandLineParameterProvider.ts
in libraries/ts-command-line/src/providers
261 25
MessageRouter.ts
in apps/api-extractor/src/collector
481 24
ChangeAction.ts
in apps/rush-lib/src/cli/actions
580 24
RushConfigurationProject.ts
in apps/rush-lib/src/api
248 23
PackageJsonEditor.ts
in apps/rush-lib/src/api
254 21
PublishUtilities.ts
in apps/rush-lib/src/logic
614 20
ExportAnalyzer.ts
in apps/api-extractor/src/analyzer
605 19
Files With Long Lines (Top 20)

There are 30 files with lines longer than 120 characters. In total, there are 1823 long lines.

File# lines# units# long lines
pnpm-lock.yaml
in common/config/rush
16561 - 1744
pnpm-lock.yaml
in common/autoinstallers/rush-prettier
248 - 40
AddAction.ts
in apps/rush-lib/src/cli/actions
164 3 6
install-run.js
in common/scripts
386 19 3
TypeScriptBuilder.ts
in apps/heft/src/plugins/TypeScriptPlugin
982 28 2
CommandLineConfiguration.ts
in apps/rush-lib/src/api
457 8 2
publish.yaml
in common/config/azure-pipelines/templates
14 - 2
_common.js
in eslint/eslint-config/profile
332 1 2
cmd
build-tests.cmd
in apps/api-extractor
3 - 1
DtsEmitHelpers.ts
in apps/api-extractor/src/generators
141 4 1
HeftCommandLineParser.ts
in apps/heft/src/cli
226 11 1
TypeScriptInternals.ts
in apps/heft/src/plugins/TypeScriptPlugin/internalTypings
70 - 1
LastInstallFlag.ts
in apps/rush-lib/src/api
81 9 1
RushProjectConfiguration.ts
in apps/rush-lib/src/api
277 5 1
RushXCommandLine.ts
in apps/rush-lib/src/cli
188 4 1
BaseInstallAction.ts
in apps/rush-lib/src/cli/actions
172 4 1
PhasedScriptAction.ts
in apps/rush-lib/src/cli/scriptActions
307 8 1
index.ts
in apps/rush-lib/src
57 - 1
ChangeFiles.ts
in apps/rush-lib/src/logic
124 7 1
PackageJsonUpdater.ts
in apps/rush-lib/src/logic
419 8 1