npm install yieldable
Make methods yieldable (via _y$_ name prefix). It's like thunkify, but for whole classes (prototypes) and objects (instances).
``js
// Turns this
obj.someAsyncMethod(arg1, arg2, arg3, function(err, result) {...});
// By doing this
yieldable(obj);
// Into this
var result = yield obj.y$someAsyncMethod(arg1, arg2, arg3);
// (notice a new method with y$ prefix, origin callback-style method remains unaffected)
`
`sh`
npm install yieldable --save
(required): Class, Object or an Array of Classes/Objects.
* prefix (optional): Custom name prefix for yieldable methods' variants. Default y$.Example
$3
`js
var dbDriver = require('some-database-driver');
var co = require('co');
var yieldable = require('yieldable');// Let's make dbDriver.Client's methods yieldable
yieldable(dbDriver.Client);
co(function*() {
var db = new dbDriver.Client({host:'localhost', dbname:'myDatabase'});
yield db.y$connect();
var result = yield db.y$query('SELECT * FROM users WHERE username = ?', ['hajovsky']);
console.log(result);
yield db.y$disconnect();
})();
`$3
`js
var dbDriver = require('some-database-driver');
var co = require('co');
var yieldable = require('yieldable');co(function*() {
// Create instance of dbDriver.Client and make it's methods yieldable
var db = yieldable(new dbDriver.Client({host:'localhost', dbname:'myDatabase'}));
yield db.y$connect();
var result = yield db.y$query('SELECT * FROM users WHERE username = ?', ['hajovsky']);
console.log(result);
yield db.y$disconnect();
})();
`$3
`js
var dbDriver = require('some-database-driver');
var co = require('co');
var yieldable = require('yieldable');yieldable(dbDriver.Client, 'yyy_');
co(function*() {
var db = new dbDriver.Client({host:'localhost', dbname:'myDatabase'});
yield db.yyy_connect();
var result = yield db.yyy_query('SELECT * FROM users WHERE username = ?', ['hajovsky']);
console.log(result);
yield db.yyy_disconnect();
})();
`$3
`js
var cql = require('node-cassandra-cql');
var MongoClient = require('mongodb').MongoClient;
var redis = require("redis");
var redisClient = redis.createClient();
var yieldable = require('yieldable');yieldable([
cql.Client,
MongoClient,
redisClient
]);
``