forked from ttc/micro-service-api
66 lines
2.4 KiB
JavaScript
66 lines
2.4 KiB
JavaScript
|
|
"use strict";
|
||
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
|
exports.transformRangeArguments = exports.parseRangeArguments = exports.TIME_SERIES_BUCKET_TIMESTAMP = void 0;
|
||
|
|
const helpers_1 = require("./helpers");
|
||
|
|
exports.TIME_SERIES_BUCKET_TIMESTAMP = {
|
||
|
|
LOW: '-',
|
||
|
|
MIDDLE: '~',
|
||
|
|
END: '+'
|
||
|
|
};
|
||
|
|
function parseRangeArguments(parser, fromTimestamp, toTimestamp, options) {
|
||
|
|
parser.push((0, helpers_1.transformTimestampArgument)(fromTimestamp), (0, helpers_1.transformTimestampArgument)(toTimestamp));
|
||
|
|
if (options?.LATEST) {
|
||
|
|
parser.push('LATEST');
|
||
|
|
}
|
||
|
|
if (options?.FILTER_BY_TS) {
|
||
|
|
parser.push('FILTER_BY_TS');
|
||
|
|
for (const timestamp of options.FILTER_BY_TS) {
|
||
|
|
parser.push((0, helpers_1.transformTimestampArgument)(timestamp));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (options?.FILTER_BY_VALUE) {
|
||
|
|
parser.push('FILTER_BY_VALUE', options.FILTER_BY_VALUE.min.toString(), options.FILTER_BY_VALUE.max.toString());
|
||
|
|
}
|
||
|
|
if (options?.COUNT !== undefined) {
|
||
|
|
parser.push('COUNT', options.COUNT.toString());
|
||
|
|
}
|
||
|
|
if (options?.AGGREGATION) {
|
||
|
|
if (options?.ALIGN !== undefined) {
|
||
|
|
parser.push('ALIGN', (0, helpers_1.transformTimestampArgument)(options.ALIGN));
|
||
|
|
}
|
||
|
|
parser.push('AGGREGATION', options.AGGREGATION.type, (0, helpers_1.transformTimestampArgument)(options.AGGREGATION.timeBucket));
|
||
|
|
if (options.AGGREGATION.BUCKETTIMESTAMP) {
|
||
|
|
parser.push('BUCKETTIMESTAMP', options.AGGREGATION.BUCKETTIMESTAMP);
|
||
|
|
}
|
||
|
|
if (options.AGGREGATION.EMPTY) {
|
||
|
|
parser.push('EMPTY');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
exports.parseRangeArguments = parseRangeArguments;
|
||
|
|
function transformRangeArguments(parser, key, fromTimestamp, toTimestamp, options) {
|
||
|
|
parser.pushKey(key);
|
||
|
|
parseRangeArguments(parser, fromTimestamp, toTimestamp, options);
|
||
|
|
}
|
||
|
|
exports.transformRangeArguments = transformRangeArguments;
|
||
|
|
exports.default = {
|
||
|
|
IS_READ_ONLY: true,
|
||
|
|
/**
|
||
|
|
* Gets samples from a time series within a time range
|
||
|
|
* @param args - Arguments passed to the {@link transformRangeArguments} function
|
||
|
|
*/
|
||
|
|
parseCommand(...args) {
|
||
|
|
const parser = args[0];
|
||
|
|
parser.push('TS.RANGE');
|
||
|
|
transformRangeArguments(...args);
|
||
|
|
},
|
||
|
|
transformReply: {
|
||
|
|
2(reply) {
|
||
|
|
return helpers_1.transformSamplesReply[2](reply);
|
||
|
|
},
|
||
|
|
3(reply) {
|
||
|
|
return helpers_1.transformSamplesReply[3](reply);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
//# sourceMappingURL=RANGE.js.map
|