Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 074330c29f
Fetching contributors…

Cannot retrieve contributors at this time

91 lines (80 sloc) 2.005 kB

$N

$N is my attempt at making something similar to Step, but with less indentation and slightly different syntax. $N is very light-weight and small, only a few lines, so it is copy & pastable if need be.

Usage

var $N = require('N')
  , fs = require('fs');

$N(function(next) {
  fs.readFile('./log.txt', 'utf-8', next);
})
.N(function(next, err, txt) {
  if (err) {
    console.log(err.message); 
  } else { 
    console.log('Some text: ' + txt);
  }
  next.N(
    // you can even push 
    // more functions onto the stack!
    function(next) { 
      console.log('world');
      next();
    }, 
    // you can pass multiple args if 
    // you want to use it like Step
    function() { 
      console.log('how are you?');
    }
  )('hello');
})
.N(function(next, hello) {
  console.log(hello);
  next();
})(); 

Outputs:

Some text: [whatever text]
hello
world
how are you?

More Features

There's also an "N-features.js" file, which is something I'm experimenting with. It includes parallel calls and consistent arguments with error handling, e.g. (err, data). I'm unsure whether I want to include these features, I like keeping things simple.

$N(function() {
  fs.readFile('./log1.txt', 'utf-8', this);
})
.N(function(err, text) {
  if (err) {
    console.log(err); 
  } else { 
    console.log('Some text: ' + text);
  }
  this.N(
    // you can even push 
    // more functions onto the stack!
    function(err, results) {
      console.log('world');
      this(results);
    }, 
    // you can pass multiple args if 
    // you want to use it like Step
    function(err, results) { 
      console.log('how are you?');
      console.log('...even more text:', results);
    }
  )('hello'); 
})
.N(function(err, hello) {
  if (err) console.log('oh no, an error:', err)
  console.log(hello);
  fs.readFile('./log2.txt', 'utf-8', this.para);
  fs.readFile('./log3.txt', 'utf-8', this.para);
})(); 

License

See LICENSE for more info (MIT).

Jump to Line
Something went wrong with that request. Please try again.