Skip to content

Commit df198d5

Browse files
committed
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. Changes: - Remove React, Ink, ink-task-list, Valtio, and yoga-layout dependencies - Add patch-console for console output interception - Update @types/node to v24 - Simplify README documentation prose
1 parent adfc8ae commit df198d5

File tree

12 files changed

+386
-715
lines changed

12 files changed

+386
-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
@@ -48,25 +48,18 @@
4848
"build": "pkgroll --env.NODE_ENV=production --env.DEV=false --minify",
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
"clean-pkg-json": "^1.3.0",
5854
"expect-type": "^1.2.2",
5955
"fs-fixture": "^2.10.1",
60-
"ink": "github:privatenumber/ink#built/treeshake-lodash",
61-
"ink-task-list": "^2.0.0",
6256
"lintroll": "^1.24.0",
6357
"manten": "^1.5.0",
6458
"nano-spawn": "^2.0.0",
6559
"p-map": "^5.3.0",
60+
"patch-console": "^2.0.0",
6661
"pkgroll": "^2.20.1",
67-
"react": "^17.0.2",
6862
"tsx": "^4.20.6",
69-
"typescript": "^5.9.3",
70-
"valtio": "^1.2.11"
63+
"typescript": "^5.9.3"
7164
}
7265
}

0 commit comments

Comments
 (0)