This repository has been archived on 2025-07-07. You can view files and clone it, but cannot push or open issues or pull requests.
Files
eternos/frontend/node_modules/underscore/modules/result.js
2025-01-13 09:33:52 +03:00

23 lines
745 B
JavaScript

import isFunction from './isFunction.js';
import toPath from './_toPath.js';
// Traverses the children of `obj` along `path`. If a child is a function, it
// is invoked with its parent as context. Returns the value of the final
// child, or `fallback` if any child is undefined.
export default function result(obj, path, fallback) {
path = toPath(path);
var length = path.length;
if (!length) {
return isFunction(fallback) ? fallback.call(obj) : fallback;
}
for (var i = 0; i < length; i++) {
var prop = obj == null ? void 0 : obj[path[i]];
if (prop === void 0) {
prop = fallback;
i = length; // Ensure we don't continue iterating.
}
obj = isFunction(prop) ? prop.call(obj) : prop;
}
return obj;
}