@golemio/energetics
Version:
Golemio Energetics Module
18 lines (17 loc) • 1.49 kB
TypeScript
import { IAveApiDeviceDataDto } from "../../../../schema-definitions/datasources/commodity-providers/interfaces/IAveApiDeviceDataDto";
import { IAveApiPlaceDto } from "../../../../schema-definitions/datasources/commodity-providers/interfaces/IAveApiPlaceDto";
import { ICemApiCounterDto } from "../../../../schema-definitions/datasources/commodity-providers/interfaces/ICemApiCounterDto";
import { ICemApiDeviceDto } from "../../../../schema-definitions/datasources/commodity-providers/interfaces/ICemApiDeviceDto";
import { ICemApiMeasurementDto } from "../../../../schema-definitions/datasources/commodity-providers/interfaces/ICemApiMeasurementDto";
import { CommodityProvider } from "../helpers/CommodityProviderEnum";
import { IDataSourceProvider } from "./IDataSourceProvider";
export type CemApiDtoUnion = ICemApiDeviceDto | ICemApiCounterDto | ICemApiMeasurementDto;
export type AveApiDtoUnion = IAveApiPlaceDto | IAveApiDeviceDataDto;
export type DataSourceProviderDict = {
[CommodityProvider.UnimonitorCemApi]: IDataSourceProvider<CemApiDtoUnion[]>;
[CommodityProvider.PpasInternetAveApi]: IDataSourceProvider<AveApiDtoUnion[]>;
};
export type DataSourceReturnType<T extends CommodityProvider> = ReturnType<DataSourceProviderDict[T]["getDataSource"]>;
export interface ICommodityProviderDataSourceFactory {
getDataSource<T extends CommodityProvider>(presetLogsProvider: T, ...params: Parameters<DataSourceProviderDict[T]["getDataSource"]>): DataSourceReturnType<T>;
}