@autotracer/filter-utils
v1.0.0-alpha.35
Published
Shared filtering utilities for Flow and React tracing (internal monorepo package)
Readme
@autotracer/filter-utils
Shared filter utilities for AutoTracer build-time and runtime filtering.
This package provides small, framework-agnostic helpers for matching names with glob-style patterns and for persisting runtime filters in localStorage.
Unique Selling Point (USP)
- A tiny, dependency-free runtime filter store you can mount onto any tracer.
- A shared glob matcher aligned with the build plugins’ filtering semantics.
Installation/Setup
pnpm add @autotracer/filter-utilsConfiguration
Runtime filter store
storageKey(required):stringstorage(optional): Storage-like adapter (getItem/setItem/removeItem)- Default behavior: pass
undefinedwhenlocalStorageis unavailable.
- Default behavior: pass
Usage
Persisted runtime filtering (name-only)
import { createRuntimeNameFilterStore } from "@autotracer/filter-utils";
const store = createRuntimeNameFilterStore({
storage: globalThis.localStorage,
storageKey: "__autotracer.myTracer.runtimeFilters.v1",
});
store.addFilter("MyComponent");
store.addFilter("noise*");
store.matchesName("noiseHandler"); // true
store.getFilters(); // ["MyComponent", "noise*"]filterMode copy/paste snippet (recommended)
Browser DevTools consoles are not a true DOM surface, so “clickable controls inside console rows” are not reliable.
Recommended filterMode UX is to append a copy/paste command snippet per row:
const snippet = `autoTracer.reactTracer.addFilter(${JSON.stringify(name)})`;
console.log("Row label", snippet);To render it slightly smaller and non-bold in DevTools, log it using %c styling:
const snippet = `autoTracer.reactTracer.addFilter(${JSON.stringify(name)})`;
console.log("Row label", `%c${snippet}`, "font-size: 0.85em; font-weight: 400;");Action element helper (not recommended)
This package still exposes createRuntimeFilterActionElement, but it depends on DevTools behavior and may render as non-interactive HTML text.
Running/Building
pnpm buildpnpm testpnpm verify
flowchart LR
A[Name printed in console] --> B[Click action element]
B --> C[addFilter(name)]
C --> D[Persist in localStorage]
D --> E[Subsequent traces suppressed]
"}