UNPKG

ravendb

Version:
62 lines 2.65 kB
import { CaseInsensitiveKeysMap } from "../../../Primitives/CaseInsensitiveKeysMap.js"; import { TimeSeriesCollectionConfiguration } from "./TimeSeriesCollectionConfiguration.js"; import { TimeUtil } from "../../../Utility/TimeUtil.js"; export class TimeSeriesConfiguration { collections = CaseInsensitiveKeysMap.create(); policyCheckFrequencyInMs; namedValues = 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.millisToTimeSpan(this.policyCheckFrequencyInMs) : null, NamedValues: namedValues }; } // using handcrafted parse function as we need to customize parsing process + call after deserialize callbacks static parse(raw) { const configuration = new TimeSeriesConfiguration(); for (const [key, collectionRaw] of Object.entries(raw.Collections)) { configuration.collections.set(key, TimeSeriesCollectionConfiguration.parse(collectionRaw)); } configuration.policyCheckFrequencyInMs = raw.PolicyCheckFrequency ? TimeUtil.timeSpanToDuration(raw.PolicyCheckFrequency) : null; for (const [key, valuesRaw] of Object.entries(raw.NamedValues)) { const map = CaseInsensitiveKeysMap.create(); for (const [innerKey, innerValuesRaw] of Object.entries(valuesRaw)) { map.set(innerKey, innerValuesRaw); } configuration.namedValues.set(key, map); } return configuration; } } //# sourceMappingURL=TimeSeriesConfiguration.js.map