facebook / flow
Components & Dependencies

An overview of source code logical components.

Intro

Logical decomposition is a representation of the organization of the main source code, where every and each file is put in exactly one logical component.

  • A software system can have one or more logical decompositions.
  • A logical decomposition can be defined in two ways in Sokrates.
  • First approach is based on the folders structure. Components are mapped to folders at defined folder depth relative to the source code root.
  • Second approach is based on explicit definition of each component. In such explicit definitions, components are explicitly named and their files are selected based on explicitly defined path and content filters.
  • A logical decomposition is considered invalid if a file is selected into two or more components.This constraint is introduced in order to facilitate measuring of dependencies among components.
  • Files not assigned to any component are put into a special "Unclassified" component.
Learn more...
Logical Decompositions Overview

Analyzed system has 1 logical decomposition:

  • primary (76 components)

Logical Decomposition #1: PRIMARY

The decompositions is based on the folder structure (relative to the source code root), with automatically defined folder depth to have at least 12 components.

Bubble Chart | Tree Map
Components
The "primary" logical decomposition has 76 components.
  • 1,108 files, 241,442 lines of code (64.6% vs. main code).
  • "src/typing" is biggest, containing 26.72% of code.
  • "website/en" is smallest, containing 0% of code.


src/typing64514 LOC (17%) 135 files
src/parser20724 LOC (5%) 41 files
src/parser_utils20210 LOC (5%) 55 files
src/hack_forked17877 LOC (4%) 145 files
src/services17687 LOC (4%) 92 files
src/common15770 LOC (4%) 121 files
newtests/lsp15738 LOC (4%) 73 files
lib10240 LOC (2%) 10 files
src/commands9934 LOC (2%) 43 files
src/analysis9269 LOC (2%) 21 files
src/server5838 LOC (1%) 34 files
src/lsp3872 LOC (1%) 10 files
src/codemods3534 LOC (<1%) 18 files
src/monitor3270 LOC (<1%) 33 files
packages/flow-dev-tools2826 LOC (<1%) 27 files
src/heap2751 LOC (<1%) 10 files
website/_webpack2426 LOC (<1%) 22 files
src/state1696 LOC (<1%) 13 files
src/parsing971 LOC (<1%) 2 files
newtests/autocomplete942 LOC (<1%) 22 files
new_website/src799 LOC (<1%) 10 files
newtests/variance773 LOC (<1%) 1 files
website/_data739 LOC (<1%) 4 files
packages/flow-remove-types558 LOC (<1%) 3 files
packages/flow-upgrade539 LOC (<1%) 9 files
src538 LOC (<1%) 5 files
newtests/jsx_pragma442 LOC (<1%) 1 files
website/_includes413 LOC (<1%) 13 files
newtests/tuples412 LOC (<1%) 1 files
packages/eslint-plugin-fb-flow374 LOC (<1%) 7 files
website/_plugins367 LOC (<1%) 4 files
newtests/array_literal_tuple_spread349 LOC (<1%) 1 files
website/_layouts345 LOC (<1%) 8 files
newtests/bigint330 LOC (<1%) 1 files
newtests/shadow318 LOC (<1%) 2 files
new_website311 LOC (<1%) 3 files
newtests/ls_command304 LOC (<1%) 6 files
newtests/FacebookismIdx280 LOC (<1%) 1 files
newtests/autofix-exports247 LOC (<1%) 1 files
src/stubs238 LOC (<1%) 9 files
newtests/tool_test_example211 LOC (<1%) 4 files
src/procs183 LOC (<1%) 2 files
newtests/unsupported_spread_args163 LOC (<1%) 1 files
website160 LOC (<1%) 5 files
packages/flow-parser-bin129 LOC (<1%) 3 files
scripts123 LOC (<1%) 3 files
newtests/resource_files119 LOC (<1%) 3 files
newtests/contents116 LOC (<1%) 5 files
newtests/package_json_changes109 LOC (<1%) 1 files
newtests/export_type_star_from106 LOC (<1%) 6 files
newtests/any_named_import103 LOC (<1%) 1 files
newtests/dynamic_import92 LOC (<1%) 3 files
newtests/sketchy_null91 LOC (<1%) 7 files
scripts/ppx_gen_flowlibs86 LOC (<1%) 2 files
newtests/import_type_shorthand86 LOC (<1%) 2 files
packages/flow-enums-runtime82 LOC (<1%) 1 files
website/blog72 LOC (<1%) 2 files
packages/babel-plugin-transform-flow-enums64 LOC (<1%) 1 files
src/flowlib63 LOC (<1%) 2 files
newtests/declare_module_imports59 LOC (<1%) 1 files
js52 LOC (<1%) 9 files
newtests/export_star_from49 LOC (<1%) 4 files
prelude47 LOC (<1%) 1 files
newtests/const_imports45 LOC (<1%) 2 files
scripts/windows41 LOC (<1%) 3 files
newtests/autostop35 LOC (<1%) 2 files
newtests/class_field_initializer_inference34 LOC (<1%) 1 files
newtests/union_new29 LOC (<1%) 2 files
newtests/config_all26 LOC (<1%) 2 files
newtests/repos-union21 LOC (<1%) 1 files
newtests/import_errors17 LOC (<1%) 3 files
new_website/components16 LOC (<1%) 1 files
newtests/recheck_parse_error16 LOC (<1%) 1 files
ROOT14 LOC (<1%) 1 files
newtests/munged_class_member_inference12 LOC (<1%) 1 files
website/en6 LOC (<1%) 2 files
Dependencies
Dependencies among components are static code dependencies among files in different components.

No component dependencies found.



2022-04-14 22:57