stak

npm install stak
16 downloads in the last week
31 downloads in the last month

Stak Build Status

Create re-usable stacks of code to run.

Status: beta

Example

var stack = Stak.make(
    function readSelf() {
        fs.readFile(this.uri, this.next);
    },
    function capitalize(err, text) {
        this.next(err, text.toUpperCase());
    }
);

stack.handle({
    uri: __filename,
    floor: function showIt(err, newText) {
        if (err) throw err;
        console.log(newText);
    }
});

Motivation

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.

Documentation

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

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

Add extra functions to the stack

var s = Stak.make();

s.use(function () {
    console.log("it works");
});

s.handle(); // it works

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,
    ceil: function () {
        this.next(42);
    },
    floor: function (data) {
        assert(data === 42 * 3);
    }
});

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

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

Installation

npm install stak

Tests

make test

Contributors

  • Raynos

MIT Licenced

npm loves you