var Fs = require('fs'); var Http = require('q-io/http'); var Q = require('q'); var R = require('ramda'); var readFile = R.composeP(R.toString, R.partial(Q.ninvoke, Fs, 'readFile')); var readPackageInfo = R.composeP(JSON.parse, readFile, R.partial(Q, 'package.json')); var homePageFromAuthor = R.compose(R.propOr('', 1), R.match(/.+?\((.+?)\)$/), R.prop('author')); var getHomePageHtml = R.composeP(R.toString, Http.read, homePageFromAuthor, readPackageInfo); getHomePageHtml() .then(R.bind(console.log, console));