rubico
Version:
[a]synchronous functional programming
9 lines (7 loc) • 900 B
JavaScript
/**
* rubico v2.6.2
* https://github.com/a-synchronous/rubico
* (c) 2019-2024 Richard Tong
* rubico may be freely distributed under the MIT license.
*/
!function(t,n){"object"==typeof module?module.exports=n:"function"==typeof define?define((()=>n)):t.defaultsDeep=n}("object"==typeof globalThis?globalThis:this,function(){"use strict";const t=Array.isArray,n=function(c,e){const r=e.length,u=c.slice();let l=-1;for(;++l<r;){const r=c[l],s=e[l];t(r)&&t(s)?u[l]=n(r,s):null==r?u[l]=s:null==s?u[l]=r:r.constructor==Object&&s.constructor==Object?u[l]=o(r,s):u[l]=r}return u},o=function(c,e){const r={...c};for(const u in e){const l=c[u],s=e[u];t(l)&&t(s)?r[u]=n(l,s):null==l?r[u]=s:null==s?r[u]=l:l.constructor==Object&&s.constructor==Object?r[u]=o(l,s):r[u]=l}return r};return c=>function(e){return t(e)&&t(c)?n(e,c):null==e||null==c?e:e.constructor==Object&&c.constructor==Object?o(e,c):e}}());