kepler.rl
Conditional Complexity

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 1,195 units with 17,415 lines of code in units (37.3% of code).
    • 0 very complex units (0 lines of code)
    • 1 complex units (748 lines of code)
    • 18 medium complex units (1,000 lines of code)
    • 108 simple units (3,653 lines of code)
    • 1,068 very simple units (12,014 lines of code)
0% | 4% | 5% | 20% | 68%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
js0% | 4% | 5% | 20% | 68%
Legend:
51+
26-50
11-25
6-10
1-5
Conditional Complexity per Logical Component
primary logical decomposition
src/components0% | 12% | 6% | 23% | 58%
src/utils0% | 0% | 10% | 22% | 67%
src/layers0% | 0% | 5% | 15% | 79%
src/processors0% | 0% | 31% | 30% | 37%
examples/demo-app0% | 0% | 3% | 19% | 77%
src/reducers0% | 0% | 0% | 41% | 58%
src/deckgl-layers0% | 0% | 0% | 24% | 75%
bindings/kepler.gl-jupyter0% | 0% | 0% | 39% | 60%
scripts0% | 0% | 0% | 16% | 83%
src/schemas0% | 0% | 0% | 2% | 97%
website-gatsby0% | 0% | 0% | 0% | 100%
website-gatsby/src0% | 0% | 0% | 0% | 100%
website/src0% | 0% | 0% | 0% | 100%
examples/custom-reducer0% | 0% | 0% | 0% | 100%
examples/replace-component0% | 0% | 0% | 0% | 100%
examples/open-modal0% | 0% | 0% | 0% | 100%
examples/custom-theme0% | 0% | 0% | 0% | 100%
src/cloud-providers0% | 0% | 0% | 0% | 100%
src/middleware0% | 0% | 0% | 0% | 100%
src/actions0% | 0% | 0% | 0% | 100%
src/connect0% | 0% | 0% | 0% | 100%
Legend:
51+
26-50
11-25
6-10
1-5
Most Complex Units
Top 50 most complex units
Unit# linesMcCabe index# params
export default function LayerConfiguratorFactory()
in src/components/side-panel/layer-panel/layer-configurator.js
748 37 6
render()
in src/components/modal-container.js
276 24 0
formatLayerData()
in src/layers/geojson-layer/geojson-layer.js
80 21 3
export function mergeFilterDomainStep()
in src/utils/filter-utils.js
38 15 2
export function analyzerTypeToFieldType()
in src/processors/data-processor.js
44 15 1
_renderMapPopover()
in src/components/map-container.js
77 15 1
export function adjustValueToFilterDomain()
in src/utils/filter-utils.js
23 14 3
export function isValidFilterValue()
in src/utils/filter-utils.js
21 14 2
_manageErrors()
in examples/demo-app/src/cloud-providers/carto/carto-provider.js
38 12 2
updateColorRangeByColorUI()
in src/layers/base-layer.js
31 12 3
formatLayerData()
in src/layers/s2-geometry-layer/s2-geometry-layer.js
58 12 3
export function getFilterFunction()
in src/utils/filter-utils.js
32 12 4
export function assignGpuChannel()
in src/utils/gpu-filter-utils.js
38 12 2
for await()
in src/processors/file-handler.js
31 12 1
function KeplerGlFactory()
in src/components/kepler-gl.js
73 12 7
export function parseTripGeoJsonTimestamp()
in src/layers/trip-layer/trip-utils.js
23 11 1
export function aggregate()
in src/utils/aggregate-utils.js
30 11 2
export function getTooltipDisplayDeltaValue()
in src/utils/interaction-utils.js
34 11 6
export function validateInputData()
in src/processors/data-processor.js
53 11 1
function App()
in bindings/kepler.gl-jupyter/js/lib/keplergl/components/app.js
77 10 0
calculateLayerDomain()
in src/layers/base-layer.js
33 10 2
function getCoordinates()
in src/deckgl-layers/3d-building-layer/3d-building-utils.js
36 10 1
export function scaleMapStyleByResolution()
in src/utils/map-style-utils/mapbox-gl-style-editor.js
26 10 2
export function mergeFilters()
in src/reducers/vis-state-merger.js
72 10 2
getDefaultLayerConfig()
in src/layers/base-layer.js
25 9 1
export function updateMapboxLayers()
in src/layers/mapbox-utils.js
18 9 3
function getCssRules()
in src/utils/dom-to-image.js
27 9 1
export function processCsvData()
in src/processors/data-processor.js
27 9 2
render()
in src/components/common/animation-control/floating-time-display.js
38 9 0
render()
in src/components/map/map-popover.js
43 9 0
render()
in src/components/kepler-gl.js
196 9 0
function updateTextLabelPropAndValue()
in src/reducers/vis-state-updaters.js
12 9 4
export function setFilterUpdater()
in src/reducers/vis-state-updaters.js
79 9 2
async downloadMap()
in examples/demo-app/src/cloud-providers/carto/carto-provider.js
47 8 1
async listMaps()
in examples/demo-app/src/cloud-providers/dropbox/dropbox-provider.js
23 8 0
async uploadMap()
in examples/demo-app/src/cloud-providers/dropbox/dropbox-provider.js
31 8 2
function addActionHandler()
in scripts/action-table-maker.js
18 8 3
export function getTextOffsetByRadius()
in src/layers/layer-text-label.js
24 8 3
formatLayerData()
in src/layers/point-layer/point-layer.js
53 8 2
static findDefaultLayerProps()
in src/layers/trip-layer/trip-layer.js
27 8 5
formatLayerData()
in src/layers/trip-layer/trip-layer.js
39 8 2
updateLayerColorUI()
in src/layers/base-layer.js
24 8 2
formatLayerData()
in src/layers/h3-hexagon-layer/h3-hexagon-layer.js
46 8 3
function compareUpdateTrigger()
in src/layers/layer-update.js
19 8 3
function classifyRings()
in src/deckgl-layers/3d-building-layer/3d-building-utils.js
28 8 1
getUpdateTriggers()
in src/deckgl-layers/layer-utils/cpu-aggregator.js
23 8 1
export function applyDefaultFormat()
in src/utils/data-utils.js
18 8 1
export function getError()
in src/utils/utils.js
19 8 1
export function findDefaultLayer()
in src/utils/layer-utils.js
26 8 2
export function filterDataset()
in src/utils/filter-utils.js
38 8 4