Passing judgement on the performance of your dev scripts
A CLI for logging timings of commands. Inspired by esbuild which finishes with a message like this: "⚡ Done in 53ms". SoFast builds on this to include prompts that identify performance issues.
The ideal development workflow has fast iteration cycles between writing code and executable tasks (e.g. typechecking, compilation, testing). Modern tooling is making it possible to reduce these task times significantly (esbuild, vite, nx). SoFast just helps you to realise when you have a problem.
SoFast has three judgements:
- duration < 10s: ⚡ SoFast!!! ⚡
- 10s < duration < 120s: 🥱 Not So Fast 🥱
- duration > 120s: 🐌 SoSlow 🐌
The goal is to make sure our scripts don't break our flow.
We recommend to install globally for convenience
npm i -g sofast
Usage: sofast <command> [options ...]
The optional name you can give to label the command. Default is the name of the command
The optional prefix with which to execute the command (e.g. npx). Default is pnpm
Displays the usage guide
pnpm is worthwhile switching to for many reasons but here the benefit is that it will run any script in your package.json or failing that any binary in your path.
$ sofast build
$ sofast --prefix='npm run' 'build'
Bear in mind that sofast adds about 1.5s of overhead to every command so you will be trading off performance for knowledge.
{...
"scripts": {
"build": "sofast --name build 'tsc'",
}
}