stak

0.1.2 • Public • Published

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

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

Installation

npm install stak

Tests

make test

Contributors

  • Raynos

MIT Licenced

Readme

Keywords

none

Package Sidebar

Install

npm i stak

Weekly Downloads

8

Version

0.1.2

License

none

Last publish

Collaborators

  • raynos