dlv icon indicating copy to clipboard operation
dlv copied to clipboard

undefined key throws

Open mikesherov opened this issue 6 years ago • 4 comments

From the readme:

//undefined obj or key returns undefined, unless a default is supplied
delve(undefined, 'a.b.c') === undefined;
delve(undefined, 'a.b.c', 'foo') === 'foo';
delve(obj, undefined, 'foo') === 'foo';

mikesherov avatar May 23 '19 18:05 mikesherov

Likely broken by the inclusion of Array support. TBH I'm not sure if there's a better behaviour here - undefined could only really be stringified, which is super unintuitive. I'd kinda rather have it throw.

developit avatar Jul 29 '19 18:07 developit

I agree. So should the docs be updated?

mikesherov avatar Jul 29 '19 19:07 mikesherov

I ran across this recently in styled-system, and looked familiar. https://github.com/styled-system/styled-system/blob/6e00a16e0c53d865955c03df2d8d6ade8948bb2f/packages/core/src/index.js#L35

key = key && key.split ? key.split('.') : [key] seems to do the trick. thoughts @developit ?

lfre avatar Feb 18 '21 18:02 lfre

delve(undefined || {}, 'a.b.c') === undefined

I think adding a default obj will be ok.

Aaronphy avatar Mar 25 '21 07:03 Aaronphy