// (C) 2007-2019 GoodData Corporation import { flatMap } from "lodash"; import { ensureItems } from "../helpers/objects"; import { ISchema } from "../model/Schema"; import { createProject } from "./ProjectBuilder"; import { createDateDataSet } from "./DateDataSetBuilder"; import { DateRange } from "../../utils/model/DateRange"; export type DateRangesMap = Map; export function createDateRangesMap(schema: ISchema): DateRangesMap { const project = createProject(schema); const groups = ensureItems(schema.groups); const dateDataSets = flatMap(groups, group => ensureItems(group.dateDataSets)); return dateDataSets.reduce((map, dateDataSetSchema) => { const dateDataSet = createDateDataSet(project, dateDataSetSchema); const { startDate, finalDate } = dateDataSetSchema; return map.set(dateDataSet.meta.identifier, new DateRange(startDate, finalDate)); }, new Map()); }