Skip to content

Commit f70f5a2

Browse files
perf: replace React/Ink with custom ANSI renderer
* test: reorganize test suite and strengthen ANSI assertions * refactor: replace React/Ink with custom ANSI renderer Remove React, Ink, and Valtio dependencies in favor of a lightweight custom ANSI-based terminal renderer. This eliminates runtime dependencies while maintaining full feature parity. * wip * wip * wip * wip * wip * wip
1 parent 3b7bf00 commit f70f5a2

File tree

12 files changed

+407
-715
lines changed

12 files changed

+407
-715
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,11 +339,11 @@ _Tasuku_ or タスク is the phonetic Japanese pronounciation of the word "task
339339
340340
### Why did you make this?
341341
342-
For writing scripts or CLI tools. _Tasuku_ is a great way to convey the state of the tasks that are running in your script without being imposing about the way you write your code.
342+
I built _Tasuku_ as a lightweight task runner for scripts and CLI tools. It's designed to show task progress clearly without forcing a rigid structure on how you write your code.
343343
344-
Major shoutout to [listr](https://github.com/SamVerschueren/listr) + [listr2](https://github.com/cenk1cenk2/listr2) for being the motivation and visual inspiration for _Tasuku_, and for being my go-to task runner for a long time. I made _Tasuku_ because I eventually found that they were too structured and declarative for my needs.
344+
Big thanks to [listr](https://github.com/SamVerschueren/listr) and [listr2](https://github.com/cenk1cenk2/listr2), which inspired both the visuals and the idea—I've relied on them for years. But over time, I found their declarative approach too restrictive for my workflow, so I created something simpler and more flexible.
345345
346-
Big thanks to [ink](https://github.com/vadimdemedes/ink) for doing all the heavy lifting for rendering interfaces in the terminal. Implementing a dynamic task list that doesn't interfere with `console.logs()` wouldn't have been so easy without it.
346+
_Tasuku_ uses its own minimal ANSI-based renderer for terminal output, giving you smooth `console.log()` integration with zero runtime dependencies. The rendering model was originally inspired by [ink](https://github.com/vadimdemedes/ink)'s approach to terminal UIs.
347347
348348
### Doesn't the usage of nested `task` functions violate ESLint's [no-shadow](https://eslint.org/docs/rules/no-shadow)?
349349
Yes, but it should be fine as you don't need access to other `task` functions aside from the immediate one.

package.json

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,24 @@
4545
"lint": "lintroll --node --cache .",
4646
"test": "tsx tests",
4747
"type-check": "tsc",
48-
"build": "pkgroll --env.NODE_ENV=production --env.DEV=false --minify",
48+
"build": "pkgroll --target=node12 --minify --clean-dist",
4949
"prepack": "clean-pkg-json"
5050
},
51-
"dependencies": {
52-
"yoga-layout-prebuilt": "1.10.0"
53-
},
5451
"devDependencies": {
5552
"@types/node": "^24.9.2",
56-
"@types/react": "^18.0.27",
5753
"ansi-escapes": "^7.1.1",
5854
"ansi-regex": "^6.2.2",
5955
"clean-pkg-json": "^1.3.0",
6056
"expect-type": "^1.2.2",
6157
"fs-fixture": "^2.10.1",
62-
"ink": "github:privatenumber/ink#built/treeshake-lodash",
63-
"ink-task-list": "^2.0.0",
6458
"lintroll": "^1.24.0",
6559
"manten": "^1.5.0",
6660
"nano-spawn": "^2.0.0",
6761
"p-map": "^5.3.0",
62+
"patch-console": "^2.0.0",
6863
"pkgroll": "^2.20.1",
69-
"react": "^17.0.2",
7064
"tsx": "^4.20.6",
7165
"typescript": "^5.9.3",
72-
"valtio": "^1.2.11",
7366
"yoctocolors": "^2.1.2"
7467
}
7568
}

0 commit comments

Comments
 (0)