This code is working fine
static #getCSV(conn, type, delimiter=';'){
return new Promise((resolve, reject) => {
const tempFileName = `data-${crypto.randomBytes(8).toString('hex')}.csv`;
const tempDir = path.join(os.tmpdir(), 'apisgh', 'data');
const tempFilePath = path.join(tempDir, tempFileName);
if (!fs.existsSync(tempDir)) {
fs.mkdirSync(tempDir, { recursive: true });
}
const writeStream = fs.createWriteStream(tempFilePath);
const customHeaders = [ // my headers ]
// only headers is written if I set headers to my customHeaders
const csvStream = format({
headers: customHeaders,
delimiter: delimiter
});
// SQL
let sql = this.sqlQuery(type) + ' LIMIT 200 ';
// Do query and write csv file
conn.query(sql)
.stream()
.pipe(csvStream)
.pipe(writeStream);
csvStream.on('error', (err) => {
reject(err);
});
writeStream.on('error', (err) => {
reject(err);
});
writeStream.on('finish', () => {
resolve({ fileName: tempFileName, filePath: tempFilePath });
});
});
}
If I Set { headers: true, delimiter:delimiter} everything working well, but when I trying to use my own headers only the headers is write in the file