chore: migrate from chalk to stdlib #513
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I recently learned that Node.js v20/v21 introduces a simple style API for doing things like color in the terminal. That can replace libraries like chalk, yoctacolor, picocolor, etc.
This doesn't make those other libraries redundant, some of them have their own perks. However, for an application like this, I think using the standard library would be better suited.
As this project already requires Node.js v22 or higher, it should be perfectly safe to use in that regard.
There is a minor difference in config between chalk and the standard library.
Namely:
overlinewhile stdlib usesoverlinedvisibleoption while stdlib has no such optionI believe the API's overlap in regarding all other properties. We could preserve the backward compatibility more fully by adding our own aliases for these, but I'm not sure if it's worthwhile.
Not Breaking Change
Actually, this is not a breaking change. I see in the code that we hardcoded a list of valid values for the theme, which do not include
visibleoroverline/overlinedanyway. As those are the only differences in terms of keywords, I believe this should be backward compatible. 🎉Checklist
Please review this checklist before submitting a pull request.
npm run test:all)Related
package.jsonif it's no longer present there.)