Degenerator

Turns sync functions into ES6's async generator functions with Nathan Rajlich's (A.K.A TooTallNate) degenerator

Get it: $ npm install degenerator

Example Usage:

Say we have few sync function like:

1
2
3
4
5
6
7
8
9
10
11
function foo () {
  return baz();
}

function bar () {
  return foo(baz);
}

function baz () {
  return bar();
}

Some degenerator magic!

1
2
3
var degenerator = require('degenerator')
var js = fs.readFileSync(sourceName, 'utf8');
var compiled = (js, ['foo','bar','baz']);

The complied source would be:

1
2
3
4
5
6
7
8
9
function* foo() {
    return yield baz();
}
function* bar() {
    return yield foo(baz);
}
function* baz() {
    return yield bar();
}

GIF FTW!

degnerator

Suggest a module

Comments