diff --git a/JavaScript/8-path.js b/JavaScript/8-path.js index 734f390..240306f 100644 --- a/JavaScript/8-path.js +++ b/JavaScript/8-path.js @@ -13,7 +13,13 @@ fp.path = (data) => ( ) ); -fp.maybe = (x) => (fn) => fp.maybe(x && fn ? fn(x) : null); +fp.isJust = (value) => { + if (!value || typeof value !== 'object') return Boolean(value); + if (Object.keys(value).length === 0) return false; + return true; +}; + +fp.maybe = (x) => (fn) => fp.maybe(fp.isJust(x) && fn ? fn(x) : null); // Usage