I've been inspired by Literate CoffeeScript to create a literate JavaScript parser. I like the idea of writing Markdown, but having executable JavaScript code blocks.
'use strict';
var fs = require('fs');
var stream = require('stream');
Let's read this file, and transform all characters to uppercase.
var readStream = fs.createReadStream(__filename);
var upcaseStream = new stream.Transform();
upcaseStream._transform = function (chunk, encoding, done) {
this.push(chunk.toString().toUpperCase());
done();
};
var stdoutStream = new stream.Writable();
stdoutStream._write = function (chunk, encoding, done) {
console.log(chunk.toString());
done();
};
Put it in a pipe, and smoke it.
readStream
.pipe(upcaseStream)
.pipe(stdoutStream);