MCPcopy Index your code
hub / github.com/ampproject/filesize

github.com/ampproject/filesize @v4.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.3.0 ↗ · + Follow
462 symbols 1,425 edges 45 files 4 documented · 1% 81 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Filesize

Purpose: Monitor the size of files in your project specified within package.json.

Uses native compression from Node Core, attempts to parallelize compression work across available CPUs, and requires Node >= 12.

Interactive UI Processing Large Files

Installation

yarn add @ampproject/filesize --dev

Usage

Specify an object of files you'd like to check the size for inside the filesize key of package.json.

{
  "filesize": {
    "./dist/index.js": {
      "brotli": "11.4 kB"
    }
  }
}

Each file (key in the filesize object) must include an object with key/value pairs: 1. The key is the compression type you would like to use on the file. 2. The value is the string representation of the files maximum allowed size.

After completing configuration, invoke filesize via: yarn filesize.

Optionally one can target a different project directory via the p parameter yarn filesize -p={PATH}, or a different configuration file via the c parameter yarn filesize -c=${PATH/filesize.json}.

Track Resource Size

This utility now also supports tracking filesizes without enforcing a max limit. To use this feature add a track key to the filesize entry.

{
  "filesize": {
    "track": ["./dist/**/*.mjs"],
  }
}

These values will be added to the output report for all comression types.

Security disclosures

The AMP Project accepts responsible security disclosures through the Google Application Security program.

Code of conduct

The AMP Project strives for a positive and growing project community that provides a safe environment for everyone. All members, committers and volunteers in the community are required to act according to the code of conduct.

License

filesize is licensed under the Apache License, Version 2.0.

Extension points exported contracts — how you extend this code

CompressionItem (Interface)
(no doc)
src/compress.ts
CompressionItem (Interface)
(no doc)
src/compressor.ts
Context (Interface)
(no doc)
src/validation/Condition.ts

Core symbols most depended-on inside this repo

m
called by 86
test/end-to-end/fixtures/api-report/react-dom.js
r
called by 37
test/end-to-end/fixtures/api-report/inferno.js
i
called by 27
test/end-to-end/fixtures/api-report/inferno.js
y
called by 24
test/end-to-end/fixtures/api-report/react-dom.js
a
called by 22
test/end-to-end/fixtures/api-report/preact.js
n
called by 19
test/end-to-end/fixtures/api-report/react-dom.js
F
called by 17
test/end-to-end/fixtures/api-report/inferno.js
I
called by 17
test/end-to-end/fixtures/api-report/inferno.js

Shape

Function 434
Method 13
Class 12
Interface 3

Languages

TypeScript100%

Modules by API surface

test/end-to-end/fixtures/api-report/react-dom.js260 symbols
test/end-to-end/fixtures/api-report/inferno.js76 symbols
test/end-to-end/fixtures/successful/replaced.js23 symbols
test/end-to-end/fixtures/successful/index.js23 symbols
test/end-to-end/fixtures/api-report/preact.js23 symbols
src/log/report.ts6 symbols
src/log/cli-report.ts6 symbols
src/log/tty-report.ts4 symbols
src/compress.ts4 symbols
test/end-to-end/successful-project.test.ts3 symbols
test/end-to-end/successful-config.test.ts3 symbols
src/log/no-tty-report.ts3 symbols

For agents

$ claude mcp add filesize \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact