11 lines
441 B
JavaScript
11 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);
|