Estoy usando TypeORM=^0.2.45 y pg-query-stream=^4.2.3, pero parece que no obtengo ningún resultado de la transmisión:
const stream = await conn .getRepository(Entity) .createQueryBuilder("e") .stream(); stream.on("data", (x) => { console.log(123); }) stream.on("result", (x) => { console.log(1234); })¿Cómo hago para que una transmisión funcione? Sin salida, nada. Si hago un simple getMany en lugar de una transmisión, al menos obtengo algo. La transmisión ni siquiera ejecuta nada; ni un solo registro.
Lo tengo funcionando. Tuve que profundizar en el código fuente y descubrí que en realidad necesitas usar el paquete pg-stream-query:
import { stringify } from "JSONStream"; function mapSync(sync) { return through(function write(data) { let mappedData; try { mappedData = sync(data); } catch (e) { return this.emit("error", e); } if (mappedData !== undefined) { this.emit("data", mappedData); } }); } const stream = await conn .getRepository(Entity) .createQueryBuilder("e") .stream(); stream.pipe(stringify()).pipe(mapSync((data) => { data = JSON.parse(x.substring(x.indexOf("{"))); return data; }));mapSync es de otra biblioteca de la que depende indirectamente pg-query-stream.