stak

Stak

Create re-usable stacks of code to run.

var stack = Stak.make(
    function readSelf() {
        fs.readFile(this.uri, this.next);
    },
    function capitalize(errtext) {
        this.next(err, text.toUpperCase());
    }
);
 
stack.handle({
    uri: __filename,
    floor: function showIt(errnewText) {
        if (err) throw err;
        console.log(newText);
    }
});

Similar to Step except you create a stack that can be re-used. This means you create the functions once and pass data in through the this context.

Stak.make(...) link

Shortcut for Object.create(Stak).constructor(...)

Stak.make(function () {
    this.next(true)
}, function (value) {
    assert(value === true);
}).handle();

Stak.use(...) link

Add extra functions to the stack

var s = Stak.make();
 
s.use(function () {
    console.log("it works");
});
 
s.handle(); // it works 

Stak.handle(context) link

This starts a stack. The first function in the stack will be called and the next function will be called once the first function calls this.next. The context object is passed in as this.

var context = {};
var s = Stak.make(function () { assert(this === context); });
s.handle(context);

The context also has two special properties floor and ceil which form the floor and the ceiling of the stack of functions. This allows you to add a function before and after all the other functions

var stack = Stak.make(function (data) {
    this.next(data * this.multiplier);
});
 
stack.handle({
    multiplier: 3,
    ceilfunction () {
        this.next(42);
    },
    floorfunction (data) {
        assert(data === 42 * 3);
    }
});

Stak.floor link

A default floor for this instance of the stack. If no floor is passed through handle then this floor will be used

Stak.ceil link

A default ceiling for this instance of the stack. If no ceil is passed through handle then this ceil will be used

npm install stak

make test

  • Raynos