diffusion
Version:
Diffusion JavaScript client
44 lines (43 loc) • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RangeQueryResult = void 0;
var errors_1 = require("./../../../errors/errors");
var query_result_1 = require("./../../features/time-series/query-result");
var Long = require("long");
/**
* Server response from a RANGE_QUERY request.
*/
var RangeQueryResult = /** @class */ (function () {
/**
* Create a new RangeQueryResult instance
*
* @param valueDataType the value data type
* @param selectedCount the number of selected events
* @param events the time series events returned in the result
*/
function RangeQueryResult(valueDataType, selectedCount, events) {
this.valueDataType = valueDataType;
this.selectedCount = selectedCount;
this.events = events;
}
/**
* Create a new {@link QueryResult} with a given value type and stream structure
*
* @param queryValueType the value type
* @param streamStructure the stream structure
* @return a new query result constructed from the range query result
* @throws an {@link InvalidDataError} if queryValueType is incompatible with the data type,
* or any of the events do not represent a valid value.
*/
RangeQueryResult.prototype.createQueryResult = function (queryValueType, streamStructure) {
var _this = this;
if (!this.valueDataType.canReadAs(queryValueType)) {
throw new errors_1.InvalidDataError("Time series topic has an incompatible event data type: " + this.valueDataType);
}
return new query_result_1.QueryResultImpl(this.selectedCount, Long.fromNumber(this.events.length), streamStructure, this.events.map(function (raw) {
return raw.withValue(_this.valueDataType.readAs(queryValueType, raw.value));
}));
};
return RangeQueryResult;
}());
exports.RangeQueryResult = RangeQueryResult;