From 8b8e07b58dadedbdac46ff193180319a8fb1e5ff Mon Sep 17 00:00:00 2001 From: Jon Seymour Date: Sat, 9 Apr 2011 14:57:00 +1000 Subject: [PATCH] Add an example which shows how the write function can be used to duplicate headers. --- samples/duplicate-headers.in | 3 +++ samples/duplicate-headers.js | 40 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 samples/duplicate-headers.in create mode 100644 samples/duplicate-headers.js diff --git a/samples/duplicate-headers.in b/samples/duplicate-headers.in new file mode 100644 index 000000000..34bde14c1 --- /dev/null +++ b/samples/duplicate-headers.in @@ -0,0 +1,3 @@ +ts,year,ms,chars,age,date +20322051544,1979.0,8.8017226E7,ABC,45,2000-01-01 +28392898392,1974.0,8.8392926E7,DEF,23,2050-11-27 diff --git a/samples/duplicate-headers.js b/samples/duplicate-headers.js new file mode 100644 index 000000000..057169296 --- /dev/null +++ b/samples/duplicate-headers.js @@ -0,0 +1,40 @@ +// CSV sample - Copyright jon seymour jon.seymour@gmail.com +// node samples/duplicate-headers.js < samples/duplicate-headers.in + +// +// This sample shows how the write function can be used +// to write a new record into the output stream. +// +// In this rather contrived example, the first line read +// is interpreted as a header and is inserted before +// every other data line in the file. +// + + var + csv = require('csv'), + header; + + process.stdin.resume(); + csv() + .fromStream(process.stdin) + .toStream(process.stdout) + .transform(function(data){ + if (header) { + this.write(header); + } else { + header=data; + return null; + } + return data; + }) + .on('error',function(error){ + console.log(error.message); + }); + +// +// expected output +// +//ts,year,ms,chars,age,date +//20322051544,1979.0,8.8017226E7,ABC,45,2000-01-01 +//ts,year,ms,chars,age,date +//28392898392,1974.0,8.8392926E7,DEF,23,2050-11-27 \ No newline at end of file