Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

so

1.0.1 • Public • Published

So

NPM version build status Test coverage

The most straightforward co-routine library for Node.JS ever. Provides predictable composable async/await from C#5.0 style co-routines for everyday use since you can live in a Harmony.

Inspired by @ForbesLindesay's great presentation: http://pag.forbeslindesay.co.uk/#/ and @visionmedia co. As of co-4.0 that was rewritten to use promises, so-1.0 can be compared with co.wrap and represents its more light and strict version.

Platform Compatibility

When using node 0.11.x or greater, you must use the --harmony-generators flag or just --harmony to get access to generators.

When using node 0.10.x and lower or browsers without generator support, you must use gnode and/or regenerator.

Also as of so-1.0 you should ensure existence of Promise either by using --harmony or any available polyfill.

Installation

$ npm install so

Usage

 
var so = require('so');
var fs = require('then-fs');
 
var readJSON = so(function*(path){
  return JSON.parse(yield fs.readFile(path, 'utf8'));
});
 
var main = so(function*(){
  var a = yield readJSON('a.json');
  var b = yield readJSON('b.json');
  console.log({a:a, b:b});
});
 
main().catch(function(e){
  console.log(e.stack || e.message || e);
});

or for CoffeeScript

so = require 'so'
fs = require 'then-fs'
 
readJSON = so (path) ->
  JSON.parse yield fs.readFile path'utf8'
 
main = so ->
  = yield readJSON 'a.json'
  = yield readJSON 'b.json'
  console.log {ab}
 
main().catch (e) ->
  console.log e.stack ? e.message ? e

Install

npm i so

DownloadsWeekly Downloads

50

Version

1.0.1

License

MIT

Last publish

Collaborators

  • avatar