Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@
await task('Do task', async ({ task }) => {
await someAsyncTask()

const nestedTask = await task('Do another task', async ({ task }) => {

Check warning on line 140 in README.md

View workflow job for this annotation

GitHub Actions / Test

'task' is defined but never used. Allowed unused args must match /^_/u
await someAsyncTask()
})

Expand Down Expand Up @@ -228,7 +228,7 @@

Returns a Promise that resolves with object:
```ts
type TaskAPI = {

Check warning on line 231 in README.md

View workflow job for this annotation

GitHub Actions / Test

'TaskAPI' is defined but never used. Allowed unused vars must match /^_/u
// Result from taskFunction
result: unknown

Expand All @@ -250,7 +250,7 @@
#### taskFunction
Type:
```ts
type TaskFunction = (taskInnerApi: {

Check warning on line 253 in README.md

View workflow job for this annotation

GitHub Actions / Test

'TaskFunction' is defined but never used. Allowed unused vars must match /^_/u
task: createTask
setTitle(title: string): void
setStatus(status?: string): void
Expand Down Expand Up @@ -290,7 +290,7 @@
Returns a Promise that resolves with object:
```ts
// The results from the taskFunctions
type TaskGroupAPI = {

Check warning on line 293 in README.md

View workflow job for this annotation

GitHub Actions / Test

'TaskGroupAPI' is defined but never used. Allowed unused vars must match /^_/u
// Result from taskFunction
result: unknown

Expand Down Expand Up @@ -339,11 +339,11 @@

### Why did you make this?

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.
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.

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.
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.

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.
_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.

### Doesn't the usage of nested `task` functions violate ESLint's [no-shadow](https://eslint.org/docs/rules/no-shadow)?
Yes, but it should be fine as you don't need access to other `task` functions aside from the immediate one.
Expand Down
11 changes: 2 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,31 +45,24 @@
"lint": "lintroll --node --cache .",
"test": "tsx tests",
"type-check": "tsc",
"build": "pkgroll --env.NODE_ENV=production --env.DEV=false --minify",
"build": "pkgroll --target=node12 --minify --clean-dist",
"prepack": "clean-pkg-json"
},
"dependencies": {
"yoga-layout-prebuilt": "1.10.0"
},
"devDependencies": {
"@types/node": "^24.9.2",
"@types/react": "^18.0.27",
"ansi-escapes": "^7.1.1",
"ansi-regex": "^6.2.2",
"clean-pkg-json": "^1.3.0",
"expect-type": "^1.2.2",
"fs-fixture": "^2.10.1",
"ink": "github:privatenumber/ink#built/treeshake-lodash",
"ink-task-list": "^2.0.0",
"lintroll": "^1.24.0",
"manten": "^1.5.0",
"nano-spawn": "^2.0.0",
"p-map": "^5.3.0",
"patch-console": "^2.0.0",
"pkgroll": "^2.20.1",
"react": "^17.0.2",
"tsx": "^4.20.6",
"typescript": "^5.9.3",
"valtio": "^1.2.11",
"yoctocolors": "^2.1.2"
}
}
Loading
Loading