{"version":3,"file":"arrays.cjs","sources":["../../../src/utils/arrays.ts"],"sourcesContent":["/**\n * Chunks an array into smaller arrays of (at most) the specified size.\n * @category Utils\n */\nexport const chunk = <T>(array: T[], chunkSize: number): T[][] =>\n  array.reduce((chunks, item, index) => {\n    const chunkIndex = Math.floor(index / chunkSize);\n\n    if (!chunks[chunkIndex]) {\n      chunks[chunkIndex] = [];\n    }\n\n    chunks[chunkIndex].push(item);\n\n    return chunks;\n  }, [] as T[][]);\n\n/**\n * Zips two arrays together, using the provided function to map the values.\n * @category Utils\n */\nexport const zipMap = <T, U, V>(\n  left: T[],\n  right: U[],\n  fn: (t: T, u: U | null, i: number) => V\n): V[] => left.map((t: T, index) => fn(t, right?.[index] ?? null, index));\n\n/**\n * Deduplicates an array by the provided function.\n * @category Utils\n */\nexport const uniqueBy = <T>(array: T[], fn: (a: T, b: T) => boolean): T[] =>\n  array.reduce((acc, v) => {\n    if (!acc.some((x) => fn(v, x))) acc.push(v);\n    return acc;\n  }, [] as T[]);\n"],"names":["chunk","array","chunkSize","reduce","chunks","item","index","chunkIndex","Math","floor","push","zipMap","left","right","fn","map","t","uniqueBy","acc","v","some","x"],"mappings":";;;;AAAA;AACA;AACA;AACA;MACaA,KAAK,GAAG,CAAIC,KAAU,EAAEC,SAAiB,KACpDD,KAAK,CAACE,MAAM,CAAC,CAACC,MAAM,EAAEC,IAAI,EAAEC,KAAK,KAAK;EACpC,MAAMC,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,KAAK,GAAGJ,SAAS,CAAC,CAAA;AAEhD,EAAA,IAAI,CAACE,MAAM,CAACG,UAAU,CAAC,EAAE;AACvBH,IAAAA,MAAM,CAACG,UAAU,CAAC,GAAG,EAAE,CAAA;AACzB,GAAA;AAEAH,EAAAA,MAAM,CAACG,UAAU,CAAC,CAACG,IAAI,CAACL,IAAI,CAAC,CAAA;AAE7B,EAAA,OAAOD,MAAM,CAAA;AACf,CAAC,EAAE,EAAE,EAAU;;AAEjB;AACA;AACA;AACA;AACaO,MAAAA,MAAM,GAAG,CACpBC,IAAS,EACTC,KAAU,EACVC,EAAuC,KAC/BF,IAAI,CAACG,GAAG,CAAC,CAACC,CAAI,EAAEV,KAAK,KAAKQ,EAAE,CAACE,CAAC,EAAEH,KAAK,GAAGP,KAAK,CAAC,IAAI,IAAI,EAAEA,KAAK,CAAC,EAAC;;AAEzE;AACA;AACA;AACA;MACaW,QAAQ,GAAG,CAAIhB,KAAU,EAAEa,EAA2B,KACjEb,KAAK,CAACE,MAAM,CAAC,CAACe,GAAG,EAAEC,CAAC,KAAK;EACvB,IAAI,CAACD,GAAG,CAACE,IAAI,CAAEC,CAAC,IAAKP,EAAE,CAACK,CAAC,EAAEE,CAAC,CAAC,CAAC,EAAEH,GAAG,CAACR,IAAI,CAACS,CAAC,CAAC,CAAA;AAC3C,EAAA,OAAOD,GAAG,CAAA;AACZ,CAAC,EAAE,EAAE;;;;;;"}