UNPKG

ravendb

Version:
46 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDocumentResultsAsObjects = getDocumentResultsAsObjects; exports.getDocumentStreamResultsIntoStreamPipeline = getDocumentStreamResultsIntoStreamPipeline; exports.streamResultsIntoStream = streamResultsIntoStream; const node_stream_1 = require("node:stream"); const RavenCommandResponsePipeline_js_1 = require("../../../Http/RavenCommandResponsePipeline.js"); const ObjectUtil_js_1 = require("../../../Utility/ObjectUtil.js"); const Stringer_js_1 = require("../../../ext/stream-json/jsonl/Stringer.js"); function getDocumentResultsAsObjects(conventions, queryStream) { const pipeline = RavenCommandResponsePipeline_js_1.RavenCommandResponsePipeline.create(); const keysTransform = new node_stream_1.Transform({ objectMode: true, transform(chunk, encoding, callback) { let value = chunk["value"]; if (!value) { return callback(); } if (conventions) { value = ObjectUtil_js_1.ObjectUtil.transformDocumentKeys(value, conventions); } callback(null, { ...chunk, value }); } }); return pipeline.parseJsonlAsync(queryStream ? x => x["Item"] : x => x, { transforms: [keysTransform] }); } async function getDocumentStreamResultsIntoStreamPipeline(conventions) { const pipeline = RavenCommandResponsePipeline_js_1.RavenCommandResponsePipeline.create(); return pipeline.parseJsonlAsync(x => x["Item"], { transforms: [ new Stringer_js_1.JsonlStringer({ replacer: (key, value) => key === '' ? value.value : value }), ] }); } 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