17 lines
373 B
TypeScript
17 lines
373 B
TypeScript
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));
|
|
}
|