Key Features
- ๐งฉ
Explicit dependency graph โ tasks run only when their dependencies are satisfied
- ๐
Multi-mode commands โ
dev,build,deploy, or any custom mode - โณ
Readiness detection โ wait for long-running processes to become "ready"
- ๐งน
Guaranteed teardown โ automatic cleanup in reverse dependency order
- ๐
Cancellation support โ abort pipelines using
AbortSignal - ๐
Rich execution statistics โ always available, even on failure
- โ
Never throws โ failures are returned as structured results
- ๐งฑ
Composable pipelines โ pipelines can be converted into tasks
- ๐พ
Task-level caching โ skip tasks when inputs and outputs haven't changed
- ๐ฏ
Artifact dependencies โ reference outputs from other tasks in cache inputs
- ๐
Input resolvers โ track package dependencies and other dynamic inputs
Quick Start
import { task, pipeline } from "builderman"
const build = task({
name: "build",
commands: {
build: "tsc",
dev: "tsc --watch",
},
})
const test = task({
name: "test",
commands: {
build: "npm test",
},
dependencies: [build],
})
const deploy = task({
name: "deploy",
commands: {
build: "npm run deploy",
},
dependencies: [test],
})
const result = await pipeline([build, test, deploy]).run({
command: "build",
})
console.log(result)