Home / File/ getBatchRange.js — react Source File

getBatchRange.js — react Source File

Architecture documentation for getBatchRange.js, a javascript file in the react codebase. 2 imports, 3 dependents.

File javascript BabelCompiler 2 imports 3 dependents

Entity Profile

Dependency Diagram

graph LR
  8fb21ca8_170b_4b4c_4dd4_5e259db0c418["getBatchRange.js"]
  20cc2065_4b5b_fd6b_be12_28f36b0ff4cf["types.js"]
  8fb21ca8_170b_4b4c_4dd4_5e259db0c418 --> 20cc2065_4b5b_fd6b_be12_28f36b0ff4cf
  d9faf0f1_af19_38f0_e86f_e255452e0539["memoize-one"]
  8fb21ca8_170b_4b4c_4dd4_5e259db0c418 --> d9faf0f1_af19_38f0_e86f_e255452e0539
  e0a3b260_ea80_6b59_5c7d_18081c4333a6["CanvasPageContextMenu.js"]
  e0a3b260_ea80_6b59_5c7d_18081c4333a6 --> 8fb21ca8_170b_4b4c_4dd4_5e259db0c418
  57dc23c0_c74d_e09e_ad1f_116cb590a38c["EventTooltip.js"]
  57dc23c0_c74d_e09e_ad1f_116cb590a38c --> 8fb21ca8_170b_4b4c_4dd4_5e259db0c418
  a3f7147d_da0b_56dc_ffc9_a9e2bbc4526a["preprocessData.js"]
  a3f7147d_da0b_56dc_ffc9_a9e2bbc4526a --> 8fb21ca8_170b_4b4c_4dd4_5e259db0c418
  style 8fb21ca8_170b_4b4c_4dd4_5e259db0c418 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */

import memoize from 'memoize-one';

import type {
  BatchUID,
  Milliseconds,
  ReactMeasure,
  TimelineData,
} from '../types';

function unmemoizedGetBatchRange(
  batchUID: BatchUID,
  data: TimelineData,
  minStartTime?: number = 0,
): [Milliseconds, Milliseconds] {
  const measures = data.batchUIDToMeasuresMap.get(batchUID);
  if (measures == null || measures.length === 0) {
    throw Error(`Could not find measures with batch UID "${batchUID}"`);
  }

  const lastMeasure = ((measures[measures.length - 1]: any): ReactMeasure);
  const stopTime = lastMeasure.timestamp + lastMeasure.duration;

  if (stopTime < minStartTime) {
    return [0, 0];
  }

  let startTime = minStartTime;
  for (let index = 0; index < measures.length; index++) {
    const measure = measures[index];
    if (measure.timestamp >= minStartTime) {
      startTime = measure.timestamp;
      break;
    }
  }

  return [startTime, stopTime];
}

export const getBatchRange: (
  batchUID: BatchUID,
  data: TimelineData,
  minStartTime?: number,
) => [Milliseconds, Milliseconds] = memoize(unmemoizedGetBatchRange);

Domain

Dependencies

Frequently Asked Questions

What does getBatchRange.js do?
getBatchRange.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain.
What does getBatchRange.js depend on?
getBatchRange.js imports 2 module(s): memoize-one, types.js.
What files import getBatchRange.js?
getBatchRange.js is imported by 3 file(s): CanvasPageContextMenu.js, EventTooltip.js, preprocessData.js.
Where is getBatchRange.js in the architecture?
getBatchRange.js is located at packages/react-devtools-timeline/src/utils/getBatchRange.js (domain: BabelCompiler, directory: packages/react-devtools-timeline/src/utils).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free