Skip to content

Releases: yetanotheraryan/coldstart

v1.0.3

01 Apr 19:31
17aa864

Choose a tag to compare


coldstart v1.0.0 — Initial release

Summary

  • Built coldstart from scratch: a zero-dependency Node.js startup profiler that instruments CommonJS
    require() and ESM loader hooks to reconstruct a full module load tree with inclusive/exclusive timing
  • Added three output formats: terminal tree (text), JSON, and a self-contained HTML flamegraph
  • Added a CLI (coldstart ) and a programmatic API via register.ts
  • Set up a GitHub Actions CI/CD pipeline to publish to npm on version tags
  • Wrote comprehensive README with quick-start, usage examples, and feature overview

What's included

┌────────────────────────────────┬─────────────────────────────────────────┐
│ File │ Purpose │
├────────────────────────────────┼─────────────────────────────────────────┤
│ src/tracer.ts │ Core timing and tree-building logic │
├────────────────────────────────┼─────────────────────────────────────────┤
│ src/cjs.ts │ CommonJS require() hook │
├────────────────────────────────┼─────────────────────────────────────────┤
│ src/esm-loader.ts │ ESM loader hook (Node ≥18.19) │
├────────────────────────────────┼─────────────────────────────────────────┤
│ src/cli.ts │ CLI entry point │
├────────────────────────────────┼─────────────────────────────────────────┤
│ src/reporter/text.ts │ Terminal tree reporter │
├────────────────────────────────┼─────────────────────────────────────────┤
│ src/reporter/json.ts │ JSON reporter │
├────────────────────────────────┼─────────────────────────────────────────┤
│ src/reporter/flamegraph.ts │ Self-contained HTML flamegraph reporter │
├────────────────────────────────┼─────────────────────────────────────────┤
│ register.ts │ Programmatic API │
├────────────────────────────────┼─────────────────────────────────────────┤
│ .github/workflows/publish.yaml │ npm publish pipeline │
└────────────────────────────────┴─────────────────────────────────────────┘

Notes

  • Requires Node.js ≥18 (≥18.19 for ESM tracing)
  • Dynamic import() tracing is not yet supported