Introduction to Object Path
Object Path is a powerful utility library that simplifies dealing with JavaScript objects. It enables deep property access and manipulation, offering a wide range of useful APIs to interact with objects effortlessly.
API Examples
Here are some commonly used APIs provided by Object Path:
1. Get
The get
method retrieves the value at a given path of an object.
const objectPath = require("object-path");
const obj = { a: { b: { c: 42 } } };
const value = objectPath.get(obj, "a.b.c");
console.log(value); // 42
2. Set
The set
method sets the value at a given path of an object.
const obj = {};
objectPath.set(obj, "a.b.c", 42);
console.log(obj); // { a: { b: { c: 42 } } }
3. Has
The has
method checks if the path exists in the object.
const obj = { a: { b: { c: 42 } } };
console.log(objectPath.has(obj, "a.b.c")); // true
console.log(objectPath.has(obj, "a.b.d")); // false
4. Ensure Exists
The ensureExists
method ensures the path exists, and if undefined, sets it to a default value.
const obj = {};
objectPath.ensureExists(obj, "a.b.c", 42);
console.log(obj); // { a: { b: { c: 42 } } }
5. Del
The del
method deletes the value at a given path.
const obj = { a: { b: { c: 42 } } };
objectPath.del(obj, "a.b.c");
console.log(obj); // { a: { b: {} } }
6. Push
The push
method pushes a value to an array at the end, creating the path if it does not exist.
const obj = {};
objectPath.push(obj, "a.b", 42);
console.log(obj); // { a: { b: [ 42 ] } }
7. Coalesce
The coalesce
method retrieves the first non-undefined path value.
const obj = { a: { b: { c: 42 } } };
const value = objectPath.coalesce(obj, ["a.b.d", "a.b.c"]);
console.log(value); // 42
Application Example
Let’s create a simple app that demonstrates how to use these APIs together:
const objectPath = require("object-path");
const userProfile = {
user: {
name: "John Doe",
contact: {
email: "john.doe@example.com",
},
preferences: {
theme: "dark",
},
},
};
// Update the user's theme preference
objectPath.set(userProfile, "user.preferences.theme", "light");
// Ensure contact phone exists
objectPath.ensureExists(userProfile, "user.contact.phone", "123-456-7890");
// Push a new notification
objectPath.push(userProfile, "user.notifications", {
message: "You have a new message!",
timestamp: Date.now(),
});
// Delete user's email address
objectPath.del(userProfile, "user.contact.email");
console.log(userProfile);
With Object Path, managing and manipulating deep object properties becomes straightforward and efficient. This small example showcases its versatility and ease of use.
Hash: 37d80973cb1f6b5f835aa3012f6ee6dd798727c384302e1a66dcd0aa06c00ad2