UNPKG

@configurator/ravendb

Version:
43 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FacetQueryCommand = void 0; const QueryCommand_1 = require("./QueryCommand"); const RavenCommandResponsePipeline_1 = require("../../Http/RavenCommandResponsePipeline"); const ObjectUtil_1 = require("../../Utility/ObjectUtil"); class FacetQueryCommand extends QueryCommand_1.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_1.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_1.ObjectUtil.transformObjectKeys(rest, { defaultTransform: "camel" }); return { ...restMapped, indexTimestamp: conventions.dateUtil.parse(IndexTimestamp), lastQueryTime: conventions.dateUtil.parse(LastQueryTime), results: Results.map(x => ObjectUtil_1.ObjectUtil.transformObjectKeys(x, { defaultTransform: "camel" })), includes: ObjectUtil_1.ObjectUtil.mapIncludesToLocalObject(json.Includes, conventions) }; } } exports.FacetQueryCommand = FacetQueryCommand; //# sourceMappingURL=FacetQueryCommand.js.map