• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

humanspeak / svelte-json-view-lite / 28756506173
81%
main: 87%

Build:
Build:
LAST BUILD BRANCH: perf/23-trim-per-node-signal-count
DEFAULT BRANCH: main
Ran 05 Jul 2026 10:08PM UTC
Jobs 1
Files 9
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Jul 2026 10:07PM UTC coverage: 80.806% (+0.6%) from 80.193%
28756506173

push

github

web-flow
perf(render): materialize expandable children lazily (#26)

* perf(render): materialize expandable children lazily

DataRender eagerly built an Array<[key, value]> tuple array for every
node, but a collapsed ExpandableObject only ever needs its child *count*.
Under collapseAllNested on a 100k-element array that is 100k throwaway
tuple allocations (and 100k child-value reads) at mount.

Move materialization into ExpandableObject, gated behind a hasMaterialized
latch: a node that is never opened never allocates its tuples or reads its
values; one opened once keeps them (no re-read on re-expand). Beats the
upstream react-json-view-lite, which rebuilds this array on every render.

- DataRender passes the resolved isArray bit down instead of the tuples,
  keeping the array-vs-object dispatch in the one component that owns it.
- ExpandableObject shares a single objectKeys derivation between the count
  and the tuple builder (was enumerating keys twice on expanded objects).
- untrack the shouldExpandNode args in the expansion effect so an ancestor
  re-render that mutates level/value/field can't rerun it and clobber the
  user's manual expand/collapse (surfaced by CodeRabbit).

Adds unit tests asserting zero child-value reads while collapsed and no
re-read on re-expand, plus a /test/lazy-children visual harness with a
live allocation counter and an e2e test.

Closes #21
Refs #22

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: add TokenMaxing badge to README

Add the TokenMaxing "AI tokens used building this repo" badge as the
third badge in the header row.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

148 of 216 branches covered (68.52%)

Branch coverage included in aggregate %.

14 of 15 new or added lines in 1 file covered. (93.33%)

193 of 206 relevant lines covered (93.69%)

76.95 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
85.03
1.57% src/lib/ExpandableObject.svelte
Jobs
ID Job ID Ran Files Coverage
1 node-22 - 28756506173.1 05 Jul 2026 10:08PM UTC 9
80.81
GitHub Action Run
Source Files on build 28756506173
  • Tree
  • List 9
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28756506173
  • c5789eed on github
  • Prev Build on updates (#28753488025)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc