Home / File/ stats.js — react Source File

stats.js — react Source File

Architecture documentation for stats.js, a javascript file in the react codebase.

Entity Profile

Relationship Graph

Source Code

'use strict';

const Table = require('cli-table');
const filesize = require('filesize');
const chalk = require('chalk');
const join = require('path').join;
const fs = require('fs');
const mkdirp = require('mkdirp');

const BUNDLE_SIZES_FILE_NAME = join(__dirname, '../../build/bundle-sizes.json');
const prevBuildResults = fs.existsSync(BUNDLE_SIZES_FILE_NAME)
  ? require(BUNDLE_SIZES_FILE_NAME)
  : {bundleSizes: []};

const currentBuildResults = {
  // Mutated inside build.js during a build run.
  bundleSizes: [],
};

function saveResults() {
  if (process.env.CI === true) {
    mkdirp.sync('build/sizes');
    fs.writeFileSync(
      join('build', 'sizes', `bundle-sizes-${process.env.NODE_INDEX}.json`),
      JSON.stringify(currentBuildResults, null, 2)
    );
  } else {
    // Write all the bundle sizes to a single JSON file.
    fs.writeFileSync(
      BUNDLE_SIZES_FILE_NAME,
      JSON.stringify(currentBuildResults, null, 2)
    );
  }
}

function fractionalChange(prev, current) {
  return (current - prev) / prev;
}

function percentChangeString(change) {
  if (!isFinite(change)) {
    // When a new package is created
    return 'n/a';
  }
  const formatted = (change * 100).toFixed(1);
  if (/^-|^0(?:\.0+)$/.test(formatted)) {
    return `${formatted}%`;
  } else {
    return `+${formatted}%`;
  }
}

const resultsHeaders = [
  'Bundle',
  'Prev Size',
  'Current Size',
  'Diff',
  'Prev Gzip',
  'Current Gzip',
  'Diff',
// ... (67 more lines)

Domain

Subdomains

Frequently Asked Questions

What does stats.js do?
stats.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Entrypoint subdomain.
What functions are defined in stats.js?
stats.js defines 5 function(s): fractionalChange, generateResultsArray, percentChangeString, printResults, saveResults.
Where is stats.js in the architecture?
stats.js is located at scripts/rollup/stats.js (domain: BabelCompiler, subdomain: Entrypoint, directory: scripts/rollup).

Analyze Your Own Codebase

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

Try Supermodel Free