aced
Version:
php+node light FE/BE framework
59 lines (53 loc) • 1.18 kB
JavaScript
var fs = require('fs')
,csvStringify = require('csv-stringify')
,path = require('path')
,ut = require('./ut')
;
module.exports = function(key, keys, dir){
var baseName = key+'.'+ut.fileTime(new Date)
,s = {}
;
keys.forEach(function(k){
var f = s[k] = {
path: dir+baseName+'.'+k+'.csv'
,write: function(data){
var rows = []
,input = []
;
if (!f.headers) {
f.headers = Object.keys(data);
//f.ws.write('"'+f.headers.join('","')+'"\n');
rows.push(f.headers);
}
f.headers.forEach(function(k){
input.push(data[k]);
});
rows.push(input);
csvStringify(rows,function(err,csvString){
if (err)
return console.log('CSV STRINGIFY ERROR',err,data);
f.ws.write(csvString);
});
}
};
f.ws = fs.createWriteStream(f.path);
});
/*s.close = function(){
keys.forEach(function(k){
s[k].ws.close();
});
};*/
return s;
}
module.exports.printFileNames = function(s){
Object.keys(s).forEach(function(k){
console.log( path.basename(s[k].path) );
});
}
module.exports.getFilePaths = function(s){
var paths = [];
Object.keys(s).forEach(function(k){
paths.push(s[k].path);
});
return paths;
}