@configurator/ravendb
Version:
RavenDB client for Node.js
66 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TimeSeriesConfiguration = void 0;
const CaseInsensitiveKeysMap_1 = require("../../../Primitives/CaseInsensitiveKeysMap");
const TimeSeriesCollectionConfiguration_1 = require("./TimeSeriesCollectionConfiguration");
const TimeUtil_1 = require("../../../Utility/TimeUtil");
class TimeSeriesConfiguration {
constructor() {
this.collections = CaseInsensitiveKeysMap_1.CaseInsensitiveKeysMap.create();
this.namedValues = CaseInsensitiveKeysMap_1.CaseInsensitiveKeysMap.create();
}
getNames(collection, timeSeries) {
if (!this.namedValues) {
return null;
}
const timeSeriesHolder = this.namedValues.get(collection);
if (!timeSeriesHolder) {
return null;
}
const names = timeSeriesHolder.get(timeSeries);
if (!names) {
return null;
}
return names;
}
serialize() {
const collections = {};
if (this.collections) {
for (const entry of this.collections.entries()) {
collections[entry[0]] = entry[1].serialize();
}
}
const namedValues = {};
if (this.namedValues) {
for (const entry of this.namedValues.entries()) {
const collectionEntry = {};
for (const perCollectionEntry of entry[1].entries()) {
collectionEntry[perCollectionEntry[0]] = perCollectionEntry[1];
}
namedValues[entry[0]] = collectionEntry;
}
}
return {
Collections: collections,
PolicyCheckFrequency: this.policyCheckFrequencyInMs ? TimeUtil_1.TimeUtil.millisToTimeSpan(this.policyCheckFrequencyInMs) : null,
NamedValues: namedValues
};
}
static parse(raw) {
const configuration = new TimeSeriesConfiguration();
for (const [key, collectionRaw] of Object.entries(raw.Collections)) {
configuration.collections.set(key, TimeSeriesCollectionConfiguration_1.TimeSeriesCollectionConfiguration.parse(collectionRaw));
}
configuration.policyCheckFrequencyInMs = raw.PolicyCheckFrequency ? TimeUtil_1.TimeUtil.timeSpanToDuration(raw.PolicyCheckFrequency) : null;
for (const [key, valuesRaw] of Object.entries(raw.NamedValues)) {
const map = CaseInsensitiveKeysMap_1.CaseInsensitiveKeysMap.create();
for (const [innerKey, innerValuesRaw] of Object.entries(valuesRaw)) {
map.set(innerKey, innerValuesRaw);
}
configuration.namedValues.set(key, map);
}
return configuration;
}
}
exports.TimeSeriesConfiguration = TimeSeriesConfiguration;
//# sourceMappingURL=TimeSeriesConfiguration.js.map