Skip to content
Actioneer logo

Actioneer

The best action pipeline thingie this side of Tatooine — compose activities into pipelines and run them concurrently, in Node.js or the browser.

Actioneer is a compact library for building pipelines of work. You describe your steps with a fluent builder, then hand the pipeline to a runner that executes it — either once, or concurrently across many inputs — with full control-flow semantics and lifecycle hooks along the way.

import {ActionBuilder, ActionRunner} from "@gesslar/actioneer"
class Doubler {
setup(builder) {
builder
.do("double", ctx => { ctx.result = ctx.input * 2; return ctx })
.done(ctx => ctx.result)
}
}
const runner = new ActionRunner(new ActionBuilder(new Doubler()))
console.log(await runner.run({input: 5})) // 10

Fluent builder

Compose pipelines with a chainable .do() API. Each step receives a shared context object it can read and mutate.

Concurrent runner

Run a single context with run(), or fan out across many with pipe() and a configurable concurrency limit.

Real control flow

WHILE, UNTIL, IF, BREAK, CONTINUE, and SPLIT modes give you loops, branches, and parallel sections inside a pipeline.

Lifecycle hooks

Attach before$ / after$ hooks to any activity for logging, setup, and cleanup — by file path or pre-instantiated object.

Environment-aware

Works in Node.js, browsers, and browser-like runtimes such as Tauri, Electron, and Deno. The right variant is auto-detected.

No build step

Pure ES modules with shipped TypeScript declarations. Import from a CDN in the browser or from npm in Node.js.