grafana/public/app/features/templating/fieldAccessorCache.ts

17 lines
373 B
TypeScript
Raw Normal View History

import { property } from 'lodash';
interface FieldAccessorCache {
[key: string]: (obj: object) => any;
}
let fieldAccessorCache: FieldAccessorCache = {};
export function getFieldAccessor(fieldPath: string) {
const accessor = fieldAccessorCache[fieldPath];
if (accessor) {
return accessor;
}
return (fieldAccessorCache[fieldPath] = property(fieldPath));
}