Skip to content

Instantly share code, notes, and snippets.

@rektide
Last active August 29, 2015 14:05
Show Gist options
  • Save rektide/df9a00423783f8f4d356 to your computer and use it in GitHub Desktop.
Save rektide/df9a00423783f8f4d356 to your computer and use it in GitHub Desktop.
liftNodeModule
var _ = require('lodash');
var node = require('when/node');
function liftNodeModule(o){
return _.chain(o)
.pairs() // break into [key,value]
.filter(function(fn, slot){ // remove '*Sync' methods
var key = slot[0];
var firstLetter = key.charAt(0);
return ! (/Sync$/.test(key) || firstChar.toUpperCase() == firstChar);
})
.reduce(function(o, slot){ // lift each method
var key = slot[0];
var fn = slot[1];
o[key] = node.lift(fn);
return o;
}, {})
.value();
}
module.exports = {
fs: liftNodeModule(require('fs'))
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment