12 lines
441 B
JavaScript
12 lines
441 B
JavaScript
|
import { EndpointError } from "../types";
|
||
|
import { getAttrPathList } from "./getAttrPathList";
|
||
|
export const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {
|
||
|
if (typeof acc !== "object") {
|
||
|
throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);
|
||
|
}
|
||
|
else if (Array.isArray(acc)) {
|
||
|
return acc[parseInt(index)];
|
||
|
}
|
||
|
return acc[index];
|
||
|
}, value);
|