plexus-csp
Version:
A Go-inspired async library based on ES6 generators
36 lines (24 loc) • 660 B
JavaScript
var fs = require('fs');
var csp = require('../../dist/index');
var content = function(path) {
var result = csp.defer();
fs.readFile(path, { encoding: 'utf8' }, function(err, val) {
if (err)
result.reject(new Error(err));
else
result.resolve(val);
});
return result;
};
var split = function(text, sep) {
return text.split(sep);
};
var readLines = function(path) {
return csp.chain(content(path), [csp.lift(split), [], '\n']);
};
csp.go(function*() {
var lines = yield readLines(process.argv[2]);
for (var i = 1; i <= lines.length; ++i)
console.log((i % 5 == 0 ? i : '') + '\t' + lines[i-1]);
});
;