Skip to content

Instantly share code, notes, and snippets.

@egoarka
Last active April 14, 2018 22:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save egoarka/38c6c1609b1361efc6831bf36355b21c to your computer and use it in GitHub Desktop.
Save egoarka/38c6c1609b1361efc6831bf36355b21c to your computer and use it in GitHub Desktop.
notmaybe
const data = { user: { address: { street: "my street" } } };
const data2 = { user: {} };
const proxy = obj => new Proxy(obj, { get });
const get = (t, p) =>
t && t[p] && (typeof t[p] === "object") ? proxy(t[p]) : t[p] ? t[p] : "";
const safe = obj => proxy(obj);
var out = safe(data).user.address.street;
var out2 = safe(data2).user.address.street;
console.log(out); // my street
console.log(out2); // undefined
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment