UNPKG

ravendb

Version:
40 lines 1.8 kB
import { QueryCommand } from "./QueryCommand.js"; import { RavenCommandResponsePipeline } from "../../Http/RavenCommandResponsePipeline.js"; import { ObjectUtil } from "../../Utility/ObjectUtil.js"; import { DateUtil } from "../../Utility/DateUtil.js"; export class FacetQueryCommand extends QueryCommand { async setResponseAsync(bodyStream, fromCache) { if (!bodyStream) { this.result = null; return; } let body = null; this.result = await FacetQueryCommand.parseQueryResultResponseAsync(bodyStream, this._session.conventions, fromCache, b => body = b); return body; } static async parseQueryResultResponseAsync(bodyStream, conventions, fromCache, bodyCallback) { const rawResult = await RavenCommandResponsePipeline.create() .collectBody(bodyCallback) .parseJsonSync() .process(bodyStream); const queryResult = FacetQueryCommand.mapToLocalObject(rawResult, conventions); if (fromCache) { queryResult.durationInMs = -1; } return queryResult; } static mapToLocalObject(json, conventions) { const { Results, Includes, IndexTimestamp, LastQueryTime, ...rest } = json; const restMapped = ObjectUtil.transformObjectKeys(rest, { defaultTransform: ObjectUtil.camel }); return { ...restMapped, indexTimestamp: DateUtil.utc.parse(IndexTimestamp), lastQueryTime: DateUtil.utc.parse(LastQueryTime), results: Results.map(x => ObjectUtil.transformObjectKeys(x, { defaultTransform: ObjectUtil.camel })), includes: ObjectUtil.mapIncludesToLocalObject(json.Includes, conventions) }; } } //# sourceMappingURL=FacetQueryCommand.js.map