UNPKG

ravendb

Version:
41 lines 1.66 kB
import { Transform } from "node:stream"; import { RavenCommandResponsePipeline } from "../../../Http/RavenCommandResponsePipeline.js"; import { ObjectUtil } from "../../../Utility/ObjectUtil.js"; import { JsonlStringer } from "../../../ext/stream-json/jsonl/Stringer.js"; export function getDocumentResultsAsObjects(conventions, queryStream) { const pipeline = RavenCommandResponsePipeline.create(); const keysTransform = new Transform({ objectMode: true, transform(chunk, encoding, callback) { let value = chunk["value"]; if (!value) { return callback(); } if (conventions) { value = ObjectUtil.transformDocumentKeys(value, conventions); } callback(null, { ...chunk, value }); } }); return pipeline.parseJsonlAsync(queryStream ? x => x["Item"] : x => x, { transforms: [keysTransform] }); } export async function getDocumentStreamResultsIntoStreamPipeline(conventions) { const pipeline = RavenCommandResponsePipeline.create(); return pipeline.parseJsonlAsync(x => x["Item"], { transforms: [ new JsonlStringer({ replacer: (key, value) => key === '' ? value.value : value }), ] }); } export async function streamResultsIntoStream(bodyStream, conventions, writable) { const pipeline = await getDocumentStreamResultsIntoStreamPipeline(conventions); return new Promise((resolve, reject) => { pipeline .stream(bodyStream, writable, (err) => { err ? reject(err) : resolve(); }); }); } //# sourceMappingURL=Pipelines.js.map