remeda
Version:
A utility library for JavaScript and Typescript.
2 lines • 1 kB
JavaScript
import{SKIP_ITEM as e}from"./utilityEvaluators-DORpnx39.js";function t(e,...t){let a=e,o=t.map(e=>`lazy`in e?r(e):void 0),s=0;for(;s<t.length;){let e=o[s];if(e===void 0||!i(a)){let e=t[s];a=e(a),s+=1;continue}let r=[];for(let e=s;e<t.length;e++){let t=o[e];if(t===void 0||(r.push(t),t.isSingle))break}let c=[];for(let e of a){let t=n(e,c,r);if(t)break}let{isSingle:l}=r.at(-1);a=l?c[0]:c,s+=r.length}return a}function n(t,r,i){if(i.length===0)return r.push(t),!1;let a=t,o=e,s=!1;for(let[e,t]of i.entries()){let{index:c,items:l}=t;if(l.push(a),o=t(a,c,l),t.index+=1,o.hasNext){if(o.hasMany??!1){for(let t of o.next){let a=n(t,r,i.slice(e+1));if(a)return!0}return s}a=o.next}if(!o.hasNext)break;o.done&&(s=!0)}return o.hasNext&&r.push(a),s}function r(e){let{lazy:t,lazyArgs:n}=e,r=t(...n);return Object.assign(r,{isSingle:t.single??!1,index:0,items:[]})}function i(e){return typeof e==`string`||typeof e==`object`&&!!e&&Symbol.iterator in e}export{t as pipe};
//# sourceMappingURL=pipe-BWjVFU-o.js.map