grafana/public/app/features/live/pages/utils.ts
Josh Hunt 3c6e0e8ef8
Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import

* Fix the lint:ts npm command

* Autofix + prettier all the files

* Manually fix remaining files

* Move jquery code in jest-setup to external file to safely reorder imports

* Resolve issue caused by circular dependencies within Prometheus

* Update .betterer.results

* Fix missing // @ts-ignore

* ignore iconBundle.ts

* Fix missing // @ts-ignore
2022-04-22 14:33:13 +01:00

32 lines
977 B
TypeScript

import { getBackendSrv } from '@grafana/runtime';
import { PipelineListOption, PipeLineEntitiesInfo } from './types';
export async function getPipeLineEntities(): Promise<PipeLineEntitiesInfo> {
return await getBackendSrv()
.get(`api/live/pipeline-entities`)
.then((data) => {
return {
converter: transformLabel(data, 'converters'),
frameProcessors: transformLabel(data, 'frameProcessors'),
frameOutputs: transformLabel(data, 'frameOutputs'),
getExample: (ruleType, type) => {
return data[`${ruleType}s`]?.filter((option: PipelineListOption) => option.type === type)?.[0]?.['example'];
},
};
});
}
export function transformLabel(data: any, key: keyof typeof data) {
if (Array.isArray(data)) {
return data.map((d) => ({
label: d[key],
value: d[key],
}));
}
return data[key].map((typeObj: PipelineListOption) => ({
label: typeObj.type,
value: typeObj.type,
}));
}