stream header flag + export from mongo

This commit is contained in:
Jan Prochazka
2021-04-08 17:49:57 +02:00
parent a5d37eb528
commit 20fccf51d9
9 changed files with 83 additions and 12 deletions

View File

@@ -0,0 +1,35 @@
const stream = require('stream');
class EnsureStreamHeaderStream extends stream.Transform {
constructor() {
super({ objectMode: true });
this.wasHeader = false;
}
_transform(chunk, encoding, done) {
if (!this.wasHeader) {
if (chunk.__isDynamicStructure) {
// ignore dynamic structure header
done();
return;
}
if (
!chunk.__isStreamHeader &&
// TODO remove isArray test
!Array.isArray(chunk.columns)
) {
this.push({
__isStreamHeader: true,
__isComputedStructure: true,
columns: Object.keys(chunk).map(columnName => ({ columnName })),
});
}
this.wasHeader = true;
}
this.push(chunk);
done();
}
}
module.exports = EnsureStreamHeaderStream;