@golemio/parkings
Version:
Golemio Parkings Module
13 lines (12 loc) • 878 B
TypeScript
import { IBedrichovParking } from "../../../schema-definitions/datasources/interfaces/IBedrichovParking";
import { IMrParkitGarageWithTariff } from "../../../schema-definitions/datasources/interfaces/IMrParkitGarage";
import { ParkingProvider } from "../helpers/ParkingProviderEnum";
import { IDataSourceProvider } from "./IDataSourceProvider";
export type DataSourceProviderDict = {
[ParkingProvider.MrParkit]: IDataSourceProvider<IMrParkitGarageWithTariff[]>;
[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>;
}