30 lines
1.0 KiB
JavaScript
30 lines
1.0 KiB
JavaScript
import { get } from "./get.mjs";
|
|
//#region src/compat/object/propertyOf.ts
|
|
/**
|
|
* Creates a function that returns the value at a given path of an object.
|
|
*
|
|
* Unlike `property`, which creates a function bound to a specific path and allows you to query different objects,
|
|
* `propertyOf` creates a function bound to a specific object and allows you to query different paths within that object.
|
|
*
|
|
* @template T - The type of object.
|
|
* @param {T} object - The object to query.
|
|
* @returns {(path: PropertyPath) => any} - Returns a new function that takes a path and retrieves the value from the object at the specified path.
|
|
*
|
|
* @example
|
|
* const getValue = propertyOf({ a: { b: { c: 3 } } });
|
|
* const result = getValue('a.b.c');
|
|
* console.log(result); // => 3
|
|
*
|
|
* @example
|
|
* const getValue = propertyOf({ a: { b: { c: 3 } } });
|
|
* const result = getValue(['a', 'b', 'c']);
|
|
* console.log(result); // => 3
|
|
*/
|
|
function propertyOf(object) {
|
|
return function(path) {
|
|
return get(object, path);
|
|
};
|
|
}
|
|
//#endregion
|
|
export { propertyOf };
|