Files
grafana/public/app/plugins/datasource/elasticsearch/index_pattern.ts
Hugo Häggmark ceb9f0855b Chore: Replaces moment with Grafanas DateTime (#16919)
* Wip: Initial commit

* Refactor: Replaces moment.utc(

* Refactor: replaces the last isMoment statements

* Refactor: Removes almost all moment imports

* Refactor: Moves moment_wrapper to grafana/ui

* Refactor: Renames momentWrapper

* Refactor: Removes one more moment import

* Refactor: Removes unitOfTime import

* Fix: Fixes Prettier error

* Refactor: Renames DateTimeType to DateTime

* Refactor: Renames isDateTimeType to isDateTime

* Refactor: Renames dateTime to dateTime

* Feature: Bans moment imports and types
2019-05-08 13:51:44 +02:00

45 lines
1.1 KiB
TypeScript

import { toUtc, dateTime } from '@grafana/ui/src/utils/moment_wrapper';
const intervalMap = {
Hourly: { startOf: 'hour', amount: 'hours' },
Daily: { startOf: 'day', amount: 'days' },
Weekly: { startOf: 'isoWeek', amount: 'weeks' },
Monthly: { startOf: 'month', amount: 'months' },
Yearly: { startOf: 'year', amount: 'years' },
};
export class IndexPattern {
constructor(private pattern, private interval: string | null) {}
getIndexForToday() {
if (this.interval) {
return toUtc().format(this.pattern);
} else {
return this.pattern;
}
}
getIndexList(from, to) {
if (!this.interval) {
return this.pattern;
}
const intervalInfo = intervalMap[this.interval];
const start = dateTime(from)
.utc()
.startOf(intervalInfo.startOf);
const endEpoch = dateTime(to)
.utc()
.startOf(intervalInfo.startOf)
.valueOf();
const indexList = [];
while (start.valueOf() <= endEpoch) {
indexList.push(start.format(this.pattern));
start.add(1, intervalInfo.amount);
}
return indexList;
}
}