UNPKG

@golemio/parkings

Version:
17 lines (16 loc) 1.25 kB
import { IMrParkitGarageWithTariff } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage"; import { ISmart4CityLocation } from "../../../schema-definitions/datasources/interfaces/ISmart4CityLocation"; import { ParkingProvider } from "../helpers/ParkingProviderEnum"; import { IDataSourceProvider } from "./IDataSourceProvider"; import { ISmart4CityList } from "../../../schema-definitions/datasources/interfaces/ISmart4CityList"; import { IBedrichovParking } from "../../../schema-definitions/datasources/interfaces/IBedrichovParking"; export type DataSourceProviderDict = { [ParkingProvider.MrParkit]: IDataSourceProvider<IMrParkitGarageWithTariff[]>; [ParkingProvider.Smart4CityList]: IDataSourceProvider<ISmart4CityList[]>; [ParkingProvider.Smart4CityLocation]: IDataSourceProvider<ISmart4CityLocation[]>; [ParkingProvider.Bedrichov]: IDataSourceProvider<IBedrichovParking[]>; }; export type DataSourceReturnType<T extends ParkingProvider> = ReturnType<DataSourceProviderDict[T]["getDataSource"]>; export interface IParkingProviderDataSourceFactory { getDataSource<T extends ParkingProvider>(presetLogsProvider: T, ...params: Parameters<DataSourceProviderDict[T]["getDataSource"]>): DataSourceReturnType<T>; }