@sapphire/iterator-utilities 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +765 -0
- package/dist/cjs/index.cjs +385 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +55 -0
- package/dist/cjs/lib/append.cjs +15 -0
- package/dist/cjs/lib/append.cjs.map +1 -0
- package/dist/cjs/lib/append.d.cts +21 -0
- package/dist/cjs/lib/at.cjs +18 -0
- package/dist/cjs/lib/at.cjs.map +1 -0
- package/dist/cjs/lib/at.d.cts +25 -0
- package/dist/cjs/lib/average.cjs +21 -0
- package/dist/cjs/lib/average.cjs.map +1 -0
- package/dist/cjs/lib/average.d.cts +25 -0
- package/dist/cjs/lib/chain.cjs +16 -0
- package/dist/cjs/lib/chain.cjs.map +1 -0
- package/dist/cjs/lib/chain.d.cts +20 -0
- package/dist/cjs/lib/chunk.cjs +27 -0
- package/dist/cjs/lib/chunk.cjs.map +1 -0
- package/dist/cjs/lib/chunk.d.cts +20 -0
- package/dist/cjs/lib/compact.cjs +14 -0
- package/dist/cjs/lib/compact.cjs.map +1 -0
- package/dist/cjs/lib/compact.d.cts +19 -0
- package/dist/cjs/lib/compress.cjs +24 -0
- package/dist/cjs/lib/compress.cjs.map +1 -0
- package/dist/cjs/lib/compress.d.cts +26 -0
- package/dist/cjs/lib/contains.cjs +18 -0
- package/dist/cjs/lib/contains.cjs.map +1 -0
- package/dist/cjs/lib/contains.d.cts +25 -0
- package/dist/cjs/lib/count.cjs +19 -0
- package/dist/cjs/lib/count.cjs.map +1 -0
- package/dist/cjs/lib/count.d.cts +24 -0
- package/dist/cjs/lib/cycle.cjs +23 -0
- package/dist/cjs/lib/cycle.cjs.map +1 -0
- package/dist/cjs/lib/cycle.d.cts +21 -0
- package/dist/cjs/lib/difference.cjs +18 -0
- package/dist/cjs/lib/difference.cjs.map +1 -0
- package/dist/cjs/lib/difference.d.cts +25 -0
- package/dist/cjs/lib/drop.cjs +28 -0
- package/dist/cjs/lib/drop.cjs.map +1 -0
- package/dist/cjs/lib/drop.d.cts +21 -0
- package/dist/cjs/lib/dropLast.cjs +23 -0
- package/dist/cjs/lib/dropLast.cjs.map +1 -0
- package/dist/cjs/lib/dropLast.d.cts +25 -0
- package/dist/cjs/lib/dropWhile.cjs +22 -0
- package/dist/cjs/lib/dropWhile.cjs.map +1 -0
- package/dist/cjs/lib/dropWhile.d.cts +24 -0
- package/dist/cjs/lib/empty.cjs +14 -0
- package/dist/cjs/lib/empty.cjs.map +1 -0
- package/dist/cjs/lib/empty.d.cts +17 -0
- package/dist/cjs/lib/enumerate.cjs +17 -0
- package/dist/cjs/lib/enumerate.cjs.map +1 -0
- package/dist/cjs/lib/enumerate.d.cts +24 -0
- package/dist/cjs/lib/every.cjs +21 -0
- package/dist/cjs/lib/every.cjs.map +1 -0
- package/dist/cjs/lib/every.d.cts +29 -0
- package/dist/cjs/lib/filter.cjs +21 -0
- package/dist/cjs/lib/filter.cjs.map +1 -0
- package/dist/cjs/lib/filter.d.cts +22 -0
- package/dist/cjs/lib/find.cjs +15 -0
- package/dist/cjs/lib/find.cjs.map +1 -0
- package/dist/cjs/lib/find.d.cts +26 -0
- package/dist/cjs/lib/findIndex.cjs +23 -0
- package/dist/cjs/lib/findIndex.cjs.map +1 -0
- package/dist/cjs/lib/findIndex.d.cts +25 -0
- package/dist/cjs/lib/first.cjs +14 -0
- package/dist/cjs/lib/first.cjs.map +1 -0
- package/dist/cjs/lib/first.d.cts +24 -0
- package/dist/cjs/lib/flat.cjs +16 -0
- package/dist/cjs/lib/flat.cjs.map +1 -0
- package/dist/cjs/lib/flat.d.cts +20 -0
- package/dist/cjs/lib/flatMap.cjs +19 -0
- package/dist/cjs/lib/flatMap.cjs.map +1 -0
- package/dist/cjs/lib/flatMap.d.cts +21 -0
- package/dist/cjs/lib/forEach.cjs +19 -0
- package/dist/cjs/lib/forEach.cjs.map +1 -0
- package/dist/cjs/lib/forEach.d.cts +24 -0
- package/dist/cjs/lib/from.cjs +25 -0
- package/dist/cjs/lib/from.cjs.map +1 -0
- package/dist/cjs/lib/from.d.cts +21 -0
- package/dist/cjs/lib/indexOf.cjs +22 -0
- package/dist/cjs/lib/indexOf.cjs.map +1 -0
- package/dist/cjs/lib/indexOf.d.cts +25 -0
- package/dist/cjs/lib/intersect.cjs +16 -0
- package/dist/cjs/lib/intersect.cjs.map +1 -0
- package/dist/cjs/lib/intersect.d.cts +26 -0
- package/dist/cjs/lib/isEmpty.cjs +14 -0
- package/dist/cjs/lib/isEmpty.cjs.map +1 -0
- package/dist/cjs/lib/isEmpty.d.cts +26 -0
- package/dist/cjs/lib/last.cjs +18 -0
- package/dist/cjs/lib/last.cjs.map +1 -0
- package/dist/cjs/lib/last.d.cts +24 -0
- package/dist/cjs/lib/map.cjs +19 -0
- package/dist/cjs/lib/map.cjs.map +1 -0
- package/dist/cjs/lib/map.d.cts +20 -0
- package/dist/cjs/lib/max.cjs +20 -0
- package/dist/cjs/lib/max.cjs.map +1 -0
- package/dist/cjs/lib/max.d.cts +25 -0
- package/dist/cjs/lib/min.cjs +20 -0
- package/dist/cjs/lib/min.cjs.map +1 -0
- package/dist/cjs/lib/min.d.cts +25 -0
- package/dist/cjs/lib/partition.cjs +26 -0
- package/dist/cjs/lib/partition.cjs.map +1 -0
- package/dist/cjs/lib/partition.d.cts +33 -0
- package/dist/cjs/lib/peekable.cjs +32 -0
- package/dist/cjs/lib/peekable.cjs.map +1 -0
- package/dist/cjs/lib/peekable.d.cts +35 -0
- package/dist/cjs/lib/prepend.cjs +17 -0
- package/dist/cjs/lib/prepend.cjs.map +1 -0
- package/dist/cjs/lib/prepend.d.cts +22 -0
- package/dist/cjs/lib/product.cjs +19 -0
- package/dist/cjs/lib/product.cjs.map +1 -0
- package/dist/cjs/lib/product.d.cts +24 -0
- package/dist/cjs/lib/range.cjs +37 -0
- package/dist/cjs/lib/range.cjs.map +1 -0
- package/dist/cjs/lib/range.d.cts +33 -0
- package/dist/cjs/lib/reduce.cjs +32 -0
- package/dist/cjs/lib/reduce.cjs.map +1 -0
- package/dist/cjs/lib/reduce.d.cts +33 -0
- package/dist/cjs/lib/repeat.cjs +20 -0
- package/dist/cjs/lib/repeat.cjs.map +1 -0
- package/dist/cjs/lib/repeat.d.cts +20 -0
- package/dist/cjs/lib/reverse.cjs +20 -0
- package/dist/cjs/lib/reverse.cjs.map +1 -0
- package/dist/cjs/lib/reverse.d.cts +26 -0
- package/dist/cjs/lib/shared/_assertFunction.cjs +17 -0
- package/dist/cjs/lib/shared/_assertFunction.cjs.map +1 -0
- package/dist/cjs/lib/shared/_assertFunction.d.cts +3 -0
- package/dist/cjs/lib/shared/_assertNotNegative.cjs +17 -0
- package/dist/cjs/lib/shared/_assertNotNegative.cjs.map +1 -0
- package/dist/cjs/lib/shared/_assertNotNegative.d.cts +3 -0
- package/dist/cjs/lib/shared/_assertPositive.cjs +17 -0
- package/dist/cjs/lib/shared/_assertPositive.cjs.map +1 -0
- package/dist/cjs/lib/shared/_assertPositive.d.cts +3 -0
- package/dist/cjs/lib/shared/_makeIterableIterator.cjs +19 -0
- package/dist/cjs/lib/shared/_makeIterableIterator.cjs.map +1 -0
- package/dist/cjs/lib/shared/_makeIterableIterator.d.cts +3 -0
- package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs +21 -0
- package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs.map +1 -0
- package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.d.cts +3 -0
- package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs +21 -0
- package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs.map +1 -0
- package/dist/cjs/lib/shared/_toIntegerOrThrow.d.cts +3 -0
- package/dist/cjs/lib/shared/_toNumberOrThrow.cjs +34 -0
- package/dist/cjs/lib/shared/_toNumberOrThrow.cjs.map +1 -0
- package/dist/cjs/lib/shared/_toNumberOrThrow.d.cts +8 -0
- package/dist/cjs/lib/slice.cjs +44 -0
- package/dist/cjs/lib/slice.cjs.map +1 -0
- package/dist/cjs/lib/slice.d.cts +62 -0
- package/dist/cjs/lib/some.cjs +22 -0
- package/dist/cjs/lib/some.cjs.map +1 -0
- package/dist/cjs/lib/some.d.cts +33 -0
- package/dist/cjs/lib/sorted.cjs +14 -0
- package/dist/cjs/lib/sorted.cjs.map +1 -0
- package/dist/cjs/lib/sorted.d.cts +25 -0
- package/dist/cjs/lib/starMap.cjs +19 -0
- package/dist/cjs/lib/starMap.cjs.map +1 -0
- package/dist/cjs/lib/starMap.d.cts +28 -0
- package/dist/cjs/lib/sum.cjs +19 -0
- package/dist/cjs/lib/sum.cjs.map +1 -0
- package/dist/cjs/lib/sum.d.cts +25 -0
- package/dist/cjs/lib/take.cjs +25 -0
- package/dist/cjs/lib/take.cjs.map +1 -0
- package/dist/cjs/lib/take.d.cts +21 -0
- package/dist/cjs/lib/takeLast.cjs +31 -0
- package/dist/cjs/lib/takeLast.cjs.map +1 -0
- package/dist/cjs/lib/takeLast.d.cts +25 -0
- package/dist/cjs/lib/tee.cjs +39 -0
- package/dist/cjs/lib/tee.cjs.map +1 -0
- package/dist/cjs/lib/tee.d.cts +25 -0
- package/dist/cjs/lib/toArray.cjs +14 -0
- package/dist/cjs/lib/toArray.cjs.map +1 -0
- package/dist/cjs/lib/toArray.d.cts +36 -0
- package/dist/cjs/lib/toIterableIterator.cjs +19 -0
- package/dist/cjs/lib/toIterableIterator.cjs.map +1 -0
- package/dist/cjs/lib/toIterableIterator.d.cts +32 -0
- package/dist/cjs/lib/union.cjs +22 -0
- package/dist/cjs/lib/union.cjs.map +1 -0
- package/dist/cjs/lib/union.d.cts +20 -0
- package/dist/cjs/lib/unique.cjs +14 -0
- package/dist/cjs/lib/unique.cjs.map +1 -0
- package/dist/cjs/lib/unique.d.cts +20 -0
- package/dist/cjs/lib/unzip.cjs +37 -0
- package/dist/cjs/lib/unzip.cjs.map +1 -0
- package/dist/cjs/lib/unzip.d.cts +32 -0
- package/dist/cjs/lib/zip.cjs +24 -0
- package/dist/cjs/lib/zip.cjs.map +1 -0
- package/dist/cjs/lib/zip.d.cts +30 -0
- package/dist/esm/chunk-G5GHKT7C.mjs +6 -0
- package/dist/esm/chunk-G5GHKT7C.mjs.map +1 -0
- package/dist/esm/index.d.mts +55 -0
- package/dist/esm/index.mjs +56 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/lib/append.d.mts +21 -0
- package/dist/esm/lib/append.mjs +11 -0
- package/dist/esm/lib/append.mjs.map +1 -0
- package/dist/esm/lib/at.d.mts +25 -0
- package/dist/esm/lib/at.mjs +15 -0
- package/dist/esm/lib/at.mjs.map +1 -0
- package/dist/esm/lib/average.d.mts +25 -0
- package/dist/esm/lib/average.mjs +18 -0
- package/dist/esm/lib/average.mjs.map +1 -0
- package/dist/esm/lib/chain.d.mts +20 -0
- package/dist/esm/lib/chain.mjs +13 -0
- package/dist/esm/lib/chain.mjs.map +1 -0
- package/dist/esm/lib/chunk.d.mts +20 -0
- package/dist/esm/lib/chunk.mjs +24 -0
- package/dist/esm/lib/chunk.mjs.map +1 -0
- package/dist/esm/lib/compact.d.mts +19 -0
- package/dist/esm/lib/compact.mjs +11 -0
- package/dist/esm/lib/compact.mjs.map +1 -0
- package/dist/esm/lib/compress.d.mts +26 -0
- package/dist/esm/lib/compress.mjs +21 -0
- package/dist/esm/lib/compress.mjs.map +1 -0
- package/dist/esm/lib/contains.d.mts +25 -0
- package/dist/esm/lib/contains.mjs +15 -0
- package/dist/esm/lib/contains.mjs.map +1 -0
- package/dist/esm/lib/count.d.mts +24 -0
- package/dist/esm/lib/count.mjs +16 -0
- package/dist/esm/lib/count.mjs.map +1 -0
- package/dist/esm/lib/cycle.d.mts +21 -0
- package/dist/esm/lib/cycle.mjs +20 -0
- package/dist/esm/lib/cycle.mjs.map +1 -0
- package/dist/esm/lib/difference.d.mts +25 -0
- package/dist/esm/lib/difference.mjs +13 -0
- package/dist/esm/lib/difference.mjs.map +1 -0
- package/dist/esm/lib/drop.d.mts +21 -0
- package/dist/esm/lib/drop.mjs +24 -0
- package/dist/esm/lib/drop.mjs.map +1 -0
- package/dist/esm/lib/dropLast.d.mts +25 -0
- package/dist/esm/lib/dropLast.mjs +19 -0
- package/dist/esm/lib/dropLast.mjs.map +1 -0
- package/dist/esm/lib/dropWhile.d.mts +24 -0
- package/dist/esm/lib/dropWhile.mjs +18 -0
- package/dist/esm/lib/dropWhile.mjs.map +1 -0
- package/dist/esm/lib/empty.d.mts +17 -0
- package/dist/esm/lib/empty.mjs +11 -0
- package/dist/esm/lib/empty.mjs.map +1 -0
- package/dist/esm/lib/enumerate.d.mts +24 -0
- package/dist/esm/lib/enumerate.mjs +14 -0
- package/dist/esm/lib/enumerate.mjs.map +1 -0
- package/dist/esm/lib/every.d.mts +29 -0
- package/dist/esm/lib/every.mjs +18 -0
- package/dist/esm/lib/every.mjs.map +1 -0
- package/dist/esm/lib/filter.d.mts +22 -0
- package/dist/esm/lib/filter.mjs +17 -0
- package/dist/esm/lib/filter.mjs.map +1 -0
- package/dist/esm/lib/find.d.mts +26 -0
- package/dist/esm/lib/find.mjs +12 -0
- package/dist/esm/lib/find.mjs.map +1 -0
- package/dist/esm/lib/findIndex.d.mts +25 -0
- package/dist/esm/lib/findIndex.mjs +20 -0
- package/dist/esm/lib/findIndex.mjs.map +1 -0
- package/dist/esm/lib/first.d.mts +24 -0
- package/dist/esm/lib/first.mjs +11 -0
- package/dist/esm/lib/first.mjs.map +1 -0
- package/dist/esm/lib/flat.d.mts +20 -0
- package/dist/esm/lib/flat.mjs +13 -0
- package/dist/esm/lib/flat.mjs.map +1 -0
- package/dist/esm/lib/flatMap.d.mts +21 -0
- package/dist/esm/lib/flatMap.mjs +16 -0
- package/dist/esm/lib/flatMap.mjs.map +1 -0
- package/dist/esm/lib/forEach.d.mts +24 -0
- package/dist/esm/lib/forEach.mjs +16 -0
- package/dist/esm/lib/forEach.mjs.map +1 -0
- package/dist/esm/lib/from.d.mts +21 -0
- package/dist/esm/lib/from.mjs +22 -0
- package/dist/esm/lib/from.mjs.map +1 -0
- package/dist/esm/lib/indexOf.d.mts +25 -0
- package/dist/esm/lib/indexOf.mjs +18 -0
- package/dist/esm/lib/indexOf.mjs.map +1 -0
- package/dist/esm/lib/intersect.d.mts +26 -0
- package/dist/esm/lib/intersect.mjs +13 -0
- package/dist/esm/lib/intersect.mjs.map +1 -0
- package/dist/esm/lib/isEmpty.d.mts +26 -0
- package/dist/esm/lib/isEmpty.mjs +11 -0
- package/dist/esm/lib/isEmpty.mjs.map +1 -0
- package/dist/esm/lib/last.d.mts +24 -0
- package/dist/esm/lib/last.mjs +15 -0
- package/dist/esm/lib/last.mjs.map +1 -0
- package/dist/esm/lib/map.d.mts +20 -0
- package/dist/esm/lib/map.mjs +16 -0
- package/dist/esm/lib/map.mjs.map +1 -0
- package/dist/esm/lib/max.d.mts +25 -0
- package/dist/esm/lib/max.mjs +17 -0
- package/dist/esm/lib/max.mjs.map +1 -0
- package/dist/esm/lib/min.d.mts +25 -0
- package/dist/esm/lib/min.mjs +17 -0
- package/dist/esm/lib/min.mjs.map +1 -0
- package/dist/esm/lib/partition.d.mts +33 -0
- package/dist/esm/lib/partition.mjs +23 -0
- package/dist/esm/lib/partition.mjs.map +1 -0
- package/dist/esm/lib/peekable.d.mts +35 -0
- package/dist/esm/lib/peekable.mjs +29 -0
- package/dist/esm/lib/peekable.mjs.map +1 -0
- package/dist/esm/lib/prepend.d.mts +22 -0
- package/dist/esm/lib/prepend.mjs +14 -0
- package/dist/esm/lib/prepend.mjs.map +1 -0
- package/dist/esm/lib/product.d.mts +24 -0
- package/dist/esm/lib/product.mjs +16 -0
- package/dist/esm/lib/product.mjs.map +1 -0
- package/dist/esm/lib/range.d.mts +33 -0
- package/dist/esm/lib/range.mjs +34 -0
- package/dist/esm/lib/range.mjs.map +1 -0
- package/dist/esm/lib/reduce.d.mts +33 -0
- package/dist/esm/lib/reduce.mjs +29 -0
- package/dist/esm/lib/reduce.mjs.map +1 -0
- package/dist/esm/lib/repeat.d.mts +20 -0
- package/dist/esm/lib/repeat.mjs +17 -0
- package/dist/esm/lib/repeat.mjs.map +1 -0
- package/dist/esm/lib/reverse.d.mts +26 -0
- package/dist/esm/lib/reverse.mjs +17 -0
- package/dist/esm/lib/reverse.mjs.map +1 -0
- package/dist/esm/lib/shared/_assertFunction.d.mts +3 -0
- package/dist/esm/lib/shared/_assertFunction.mjs +14 -0
- package/dist/esm/lib/shared/_assertFunction.mjs.map +1 -0
- package/dist/esm/lib/shared/_assertNotNegative.d.mts +3 -0
- package/dist/esm/lib/shared/_assertNotNegative.mjs +14 -0
- package/dist/esm/lib/shared/_assertNotNegative.mjs.map +1 -0
- package/dist/esm/lib/shared/_assertPositive.d.mts +3 -0
- package/dist/esm/lib/shared/_assertPositive.mjs +14 -0
- package/dist/esm/lib/shared/_assertPositive.mjs.map +1 -0
- package/dist/esm/lib/shared/_makeIterableIterator.d.mts +3 -0
- package/dist/esm/lib/shared/_makeIterableIterator.mjs +16 -0
- package/dist/esm/lib/shared/_makeIterableIterator.mjs.map +1 -0
- package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.d.mts +3 -0
- package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs +18 -0
- package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs.map +1 -0
- package/dist/esm/lib/shared/_toIntegerOrThrow.d.mts +3 -0
- package/dist/esm/lib/shared/_toIntegerOrThrow.mjs +18 -0
- package/dist/esm/lib/shared/_toIntegerOrThrow.mjs.map +1 -0
- package/dist/esm/lib/shared/_toNumberOrThrow.d.mts +8 -0
- package/dist/esm/lib/shared/_toNumberOrThrow.mjs +31 -0
- package/dist/esm/lib/shared/_toNumberOrThrow.mjs.map +1 -0
- package/dist/esm/lib/slice.d.mts +62 -0
- package/dist/esm/lib/slice.mjs +41 -0
- package/dist/esm/lib/slice.mjs.map +1 -0
- package/dist/esm/lib/some.d.mts +33 -0
- package/dist/esm/lib/some.mjs +19 -0
- package/dist/esm/lib/some.mjs.map +1 -0
- package/dist/esm/lib/sorted.d.mts +25 -0
- package/dist/esm/lib/sorted.mjs +11 -0
- package/dist/esm/lib/sorted.mjs.map +1 -0
- package/dist/esm/lib/starMap.d.mts +28 -0
- package/dist/esm/lib/starMap.mjs +16 -0
- package/dist/esm/lib/starMap.mjs.map +1 -0
- package/dist/esm/lib/sum.d.mts +25 -0
- package/dist/esm/lib/sum.mjs +16 -0
- package/dist/esm/lib/sum.mjs.map +1 -0
- package/dist/esm/lib/take.d.mts +21 -0
- package/dist/esm/lib/take.mjs +22 -0
- package/dist/esm/lib/take.mjs.map +1 -0
- package/dist/esm/lib/takeLast.d.mts +25 -0
- package/dist/esm/lib/takeLast.mjs +28 -0
- package/dist/esm/lib/takeLast.mjs.map +1 -0
- package/dist/esm/lib/tee.d.mts +25 -0
- package/dist/esm/lib/tee.mjs +36 -0
- package/dist/esm/lib/tee.mjs.map +1 -0
- package/dist/esm/lib/toArray.d.mts +36 -0
- package/dist/esm/lib/toArray.mjs +11 -0
- package/dist/esm/lib/toArray.mjs.map +1 -0
- package/dist/esm/lib/toIterableIterator.d.mts +32 -0
- package/dist/esm/lib/toIterableIterator.mjs +16 -0
- package/dist/esm/lib/toIterableIterator.mjs.map +1 -0
- package/dist/esm/lib/union.d.mts +20 -0
- package/dist/esm/lib/union.mjs +19 -0
- package/dist/esm/lib/union.mjs.map +1 -0
- package/dist/esm/lib/unique.d.mts +20 -0
- package/dist/esm/lib/unique.mjs +11 -0
- package/dist/esm/lib/unique.mjs.map +1 -0
- package/dist/esm/lib/unzip.d.mts +32 -0
- package/dist/esm/lib/unzip.mjs +34 -0
- package/dist/esm/lib/unzip.mjs.map +1 -0
- package/dist/esm/lib/zip.d.mts +30 -0
- package/dist/esm/lib/zip.mjs +21 -0
- package/dist/esm/lib/zip.mjs.map +1 -0
- package/dist/iife/index.global.js +834 -0
- package/dist/iife/index.global.js.map +1 -0
- package/package.json +692 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
import { NumberResolvable } from './shared/_toNumberOrThrow.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Consumes the iterable and returns the sum of all the elements.
|
|
6
|
+
*
|
|
7
|
+
* @param iterable An iterator of numbers to calculate the sum of.
|
|
8
|
+
* @returns The sum of the numbers in the input iterator.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { sum } from '@sapphire/iterator-utilities';
|
|
13
|
+
*
|
|
14
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
15
|
+
* console.log(sum(iterable));
|
|
16
|
+
* // Output: 15
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
*
|
|
21
|
+
* This function consumes the entire iterator.
|
|
22
|
+
*/
|
|
23
|
+
declare function sum(iterable: IterableResolvable<NumberResolvable>): number;
|
|
24
|
+
|
|
25
|
+
export { sum };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { map } from './map.mjs';
|
|
3
|
+
import { toNumberOrThrow } from './shared/_toNumberOrThrow.mjs';
|
|
4
|
+
|
|
5
|
+
function sum(iterable) {
|
|
6
|
+
let sum2 = 0;
|
|
7
|
+
for (const value of map(iterable, toNumberOrThrow)) {
|
|
8
|
+
sum2 += value;
|
|
9
|
+
}
|
|
10
|
+
return sum2;
|
|
11
|
+
}
|
|
12
|
+
__name(sum, "sum");
|
|
13
|
+
|
|
14
|
+
export { sum };
|
|
15
|
+
//# sourceMappingURL=out.js.map
|
|
16
|
+
//# sourceMappingURL=sum.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/sum.ts"],"names":["sum"],"mappings":";;;;;AACA,SAAS,WAAW;AACpB,SAAS,uBAA8C;AAqBhD,SAAS,IAAI,UAAgD;AACnE,MAAIA,OAAM;AACV,aAAW,SAAS,IAAI,UAAU,eAAe,GAAG;AACnD,IAAAA,QAAO;AAAA,EACR;AAEA,SAAOA;AACR;AAPgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { map } from './map';\nimport { toNumberOrThrow, type NumberResolvable } from './shared/_toNumberOrThrow';\n\n/**\n * Consumes the iterable and returns the sum of all the elements.\n *\n * @param iterable An iterator of numbers to calculate the sum of.\n * @returns The sum of the numbers in the input iterator.\n *\n * @example\n * ```typescript\n * import { sum } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(sum(iterable));\n * // Output: 15\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function sum(iterable: IterableResolvable<NumberResolvable>) {\n\tlet sum = 0;\n\tfor (const value of map(iterable, toNumberOrThrow)) {\n\t\tsum += value;\n\t}\n\n\treturn sum;\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an iterable with the first `count` elements.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable The iterator to take values from.
|
|
7
|
+
* @param count The maximum number of values to take from the iterator.
|
|
8
|
+
* @returns An iterator that yields at most `count` values from the provided iterator.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { take } from '@sapphire/iterator-utilities';
|
|
13
|
+
*
|
|
14
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
15
|
+
* console.log([...take(iterable, 2)]);
|
|
16
|
+
* // Output: [1, 2]
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
declare function take<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>;
|
|
20
|
+
|
|
21
|
+
export { take };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { empty } from './empty.mjs';
|
|
3
|
+
import { from } from './from.mjs';
|
|
4
|
+
import { assertNotNegative } from './shared/_assertNotNegative.mjs';
|
|
5
|
+
import { makeIterableIterator } from './shared/_makeIterableIterator.mjs';
|
|
6
|
+
import { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow.mjs';
|
|
7
|
+
|
|
8
|
+
function take(iterable, count) {
|
|
9
|
+
count = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);
|
|
10
|
+
if (count === 0)
|
|
11
|
+
return empty();
|
|
12
|
+
let i = 0;
|
|
13
|
+
const resolvedIterable = from(iterable);
|
|
14
|
+
return makeIterableIterator(
|
|
15
|
+
() => i >= count ? { done: true, value: void 0 } : (i++, resolvedIterable.next())
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
__name(take, "take");
|
|
19
|
+
|
|
20
|
+
export { take };
|
|
21
|
+
//# sourceMappingURL=out.js.map
|
|
22
|
+
//# sourceMappingURL=take.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/take.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AACtB,SAAS,YAAqC;AAC9C,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,kCAAkC;AAkBpC,SAAS,KAAwB,UAA2C,OAA8C;AAChI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,MAAI,UAAU;AAAG,WAAO,MAAM;AAE9B,MAAI,IAAI;AACR,QAAM,mBAAmB,KAAK,QAAQ;AACtC,SAAO;AAAA,IAAkC,MACxC,KAAK,QACF,EAAE,MAAM,MAAM,OAAO,OAAU,KAC9B,KAAK,iBAAiB,KAAK;AAAA,EAChC;AACD;AAXgB","sourcesContent":["import { empty } from './empty';\nimport { from, type IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\n\n/**\n * Creates an iterable with the first `count` elements.\n *\n * @param iterable The iterator to take values from.\n * @param count The maximum number of values to take from the iterator.\n * @returns An iterator that yields at most `count` values from the provided iterator.\n *\n * @example\n * ```typescript\n * import { take } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...take(iterable, 2)]);\n * // Output: [1, 2]\n * ```\n */\nexport function take<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tif (count === 0) return empty();\n\n\tlet i = 0;\n\tconst resolvedIterable = from(iterable);\n\treturn makeIterableIterator<ElementType>(() =>\n\t\ti >= count //\n\t\t\t? { done: true, value: undefined }\n\t\t\t: (i++, resolvedIterable.next())\n\t);\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Consumes the iterable and returns a new iterable with the last `count` elements.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable An iterator to take values from.
|
|
7
|
+
* @param count The number of values to take from the end of the iterator.
|
|
8
|
+
* @returns An iterator that contains the last `count` elements of the provided iterator.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { takeLast } from '@sapphire/iterator-utilities';
|
|
13
|
+
*
|
|
14
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
15
|
+
* console.log([...takeLast(iterable, 2)]);
|
|
16
|
+
* // Output: [4, 5]
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
*
|
|
21
|
+
* This function consumes the entire iterator.
|
|
22
|
+
*/
|
|
23
|
+
declare function takeLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>;
|
|
24
|
+
|
|
25
|
+
export { takeLast };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { empty } from './empty.mjs';
|
|
3
|
+
import { assertNotNegative } from './shared/_assertNotNegative.mjs';
|
|
4
|
+
import { makeIterableIterator } from './shared/_makeIterableIterator.mjs';
|
|
5
|
+
import { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow.mjs';
|
|
6
|
+
import { toArray } from './toArray.mjs';
|
|
7
|
+
import { toIterableIterator } from './toIterableIterator.mjs';
|
|
8
|
+
|
|
9
|
+
function takeLast(iterable, count) {
|
|
10
|
+
count = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);
|
|
11
|
+
if (count === 0)
|
|
12
|
+
return empty();
|
|
13
|
+
if (count === Number.POSITIVE_INFINITY)
|
|
14
|
+
return toIterableIterator(iterable);
|
|
15
|
+
const array = toArray(iterable);
|
|
16
|
+
let i = Math.max(0, array.length - count);
|
|
17
|
+
return makeIterableIterator(() => {
|
|
18
|
+
if (i >= array.length) {
|
|
19
|
+
return { done: true, value: void 0 };
|
|
20
|
+
}
|
|
21
|
+
return { done: false, value: array[i++] };
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
__name(takeLast, "takeLast");
|
|
25
|
+
|
|
26
|
+
export { takeLast };
|
|
27
|
+
//# sourceMappingURL=out.js.map
|
|
28
|
+
//# sourceMappingURL=takeLast.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/takeLast.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,kCAAkC;AAC3C,SAAS,eAAe;AACxB,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,MAAI,UAAU;AAAG,WAAO,MAAM;AAC9B,MAAI,UAAU,OAAO;AAAmB,WAAO,mBAAmB,QAAQ;AAE1E,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,IAAI,KAAK,IAAI,GAAG,MAAM,SAAS,KAAK;AACxC,SAAO,qBAAkC,MAAM;AAC9C,QAAI,KAAK,MAAM,QAAQ;AACtB,aAAO,EAAE,MAAM,MAAM,OAAO,OAAU;AAAA,IACvC;AAEA,WAAO,EAAE,MAAM,OAAO,OAAO,MAAM,GAAG,EAAE;AAAA,EACzC,CAAC;AACF;AAdgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { toArray } from './toArray';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns a new iterable with the last `count` elements.\n *\n * @param iterable An iterator to take values from.\n * @param count The number of values to take from the end of the iterator.\n * @returns An iterator that contains the last `count` elements of the provided iterator.\n *\n * @example\n * ```typescript\n * import { takeLast } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...takeLast(iterable, 2)]);\n * // Output: [4, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function takeLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tif (count === 0) return empty();\n\tif (count === Number.POSITIVE_INFINITY) return toIterableIterator(iterable);\n\n\tconst array = toArray(iterable);\n\tlet i = Math.max(0, array.length - count);\n\treturn makeIterableIterator<ElementType>(() => {\n\t\tif (i >= array.length) {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\n\t\treturn { done: false, value: array[i++] };\n\t});\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates `count` independent iterators from the input iterable.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable An iterator to tee.
|
|
7
|
+
* @param count The number of iterators to create.
|
|
8
|
+
* @returns An array of `count` iterators that each yield the same values as the input iterator.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { tee } from '@sapphire/iterator-utilities';
|
|
13
|
+
*
|
|
14
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
15
|
+
* const [iter1, iter2] = tee(iterable, 2);
|
|
16
|
+
* console.log([...iter1]);
|
|
17
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
18
|
+
*
|
|
19
|
+
* console.log([...iter2]);
|
|
20
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare function tee<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>[];
|
|
24
|
+
|
|
25
|
+
export { tee };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { from } from './from.mjs';
|
|
3
|
+
import { repeat } from './repeat.mjs';
|
|
4
|
+
import { assertNotNegative } from './shared/_assertNotNegative.mjs';
|
|
5
|
+
import { makeIterableIterator } from './shared/_makeIterableIterator.mjs';
|
|
6
|
+
import { toIntegerOrThrow } from './shared/_toIntegerOrThrow.mjs';
|
|
7
|
+
import { toArray } from './toArray.mjs';
|
|
8
|
+
|
|
9
|
+
function tee(iterable, count) {
|
|
10
|
+
count = assertNotNegative(toIntegerOrThrow(count), count);
|
|
11
|
+
if (count === 0)
|
|
12
|
+
return [];
|
|
13
|
+
const entries = [];
|
|
14
|
+
const indexes = toArray(repeat(0, count));
|
|
15
|
+
const resolvedIterable = from(iterable);
|
|
16
|
+
const iterables = [];
|
|
17
|
+
for (let i = 0; i < count; i++) {
|
|
18
|
+
const iterable2 = makeIterableIterator(() => {
|
|
19
|
+
if (indexes[i] >= entries.length) {
|
|
20
|
+
const result = resolvedIterable.next();
|
|
21
|
+
if (result.done) {
|
|
22
|
+
return { done: true, value: void 0 };
|
|
23
|
+
}
|
|
24
|
+
entries.push(result.value);
|
|
25
|
+
}
|
|
26
|
+
return { done: false, value: entries[indexes[i]++] };
|
|
27
|
+
});
|
|
28
|
+
iterables.push(iterable2);
|
|
29
|
+
}
|
|
30
|
+
return iterables;
|
|
31
|
+
}
|
|
32
|
+
__name(tee, "tee");
|
|
33
|
+
|
|
34
|
+
export { tee };
|
|
35
|
+
//# sourceMappingURL=out.js.map
|
|
36
|
+
//# sourceMappingURL=tee.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/tee.ts"],"names":["iterable"],"mappings":";;;;;AAAA,SAAS,YAAqC;AAC9C,SAAS,cAAc;AACvB,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,eAAe;AAsBjB,SAAS,IAAuB,UAA2C,OAAgD;AACjI,UAAQ,kBAAkB,iBAAiB,KAAK,GAAG,KAAK;AACxD,MAAI,UAAU;AAAG,WAAO,CAAC;AAEzB,QAAM,UAAU,CAAC;AACjB,QAAM,UAAU,QAAQ,OAAO,GAAG,KAAK,CAAC;AACxC,QAAM,mBAAmB,KAAK,QAAQ;AAEtC,QAAM,YAAY,CAAC;AACnB,WAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC/B,UAAMA,YAAW,qBAAkC,MAAM;AACxD,UAAI,QAAQ,CAAC,KAAK,QAAQ,QAAQ;AACjC,cAAM,SAAS,iBAAiB,KAAK;AACrC,YAAI,OAAO,MAAM;AAChB,iBAAO,EAAE,MAAM,MAAM,OAAO,OAAU;AAAA,QACvC;AAEA,gBAAQ,KAAK,OAAO,KAAK;AAAA,MAC1B;AAEA,aAAO,EAAE,MAAM,OAAO,OAAO,QAAQ,QAAQ,CAAC,GAAG,EAAE;AAAA,IACpD,CAAC;AAED,cAAU,KAAKA,SAAQ;AAAA,EACxB;AAEA,SAAO;AACR;AA3BgB","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { repeat } from './repeat';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrThrow } from './shared/_toIntegerOrThrow';\nimport { toArray } from './toArray';\n\n/**\n * Creates `count` independent iterators from the input iterable.\n *\n * @param iterable An iterator to tee.\n * @param count The number of iterators to create.\n * @returns An array of `count` iterators that each yield the same values as the input iterator.\n *\n * @example\n * ```typescript\n * import { tee } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * const [iter1, iter2] = tee(iterable, 2);\n * console.log([...iter1]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * console.log([...iter2]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function tee<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>[] {\n\tcount = assertNotNegative(toIntegerOrThrow(count), count);\n\tif (count === 0) return [];\n\n\tconst entries = [] as ElementType[];\n\tconst indexes = toArray(repeat(0, count));\n\tconst resolvedIterable = from(iterable);\n\n\tconst iterables = [] as IterableIterator<ElementType>[];\n\tfor (let i = 0; i < count; i++) {\n\t\tconst iterable = makeIterableIterator<ElementType>(() => {\n\t\t\tif (indexes[i] >= entries.length) {\n\t\t\t\tconst result = resolvedIterable.next();\n\t\t\t\tif (result.done) {\n\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t}\n\n\t\t\t\tentries.push(result.value);\n\t\t\t}\n\n\t\t\treturn { done: false, value: entries[indexes[i]++] };\n\t\t});\n\n\t\titerables.push(iterable);\n\t}\n\n\treturn iterables;\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Consumes the iterable and returns an array with all the elements.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable The iterator to convert to an array.
|
|
7
|
+
* @returns An array containing the values of the provided iterator.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { toArray } from '@sapphire/iterator-utilities';
|
|
12
|
+
*
|
|
13
|
+
* const array = [1, 2, 3, 4, 5];
|
|
14
|
+
* console.log(toArray(array));
|
|
15
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
16
|
+
*
|
|
17
|
+
* const set = new Set([1, 2, 3, 4, 5]);
|
|
18
|
+
* console.log(toArray(set));
|
|
19
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
20
|
+
*
|
|
21
|
+
* const map = new Map([['a', 1], ['b', 2], ['c', 3]]);
|
|
22
|
+
* console.log(toArray(map));
|
|
23
|
+
* // Output: [['a', 1], ['b', 2], ['c', 3]]
|
|
24
|
+
*
|
|
25
|
+
* const string = 'hello';
|
|
26
|
+
* console.log(toArray(string));
|
|
27
|
+
* // Output: ['h', 'e', 'l', 'l', 'o']
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
*
|
|
32
|
+
* This function consumes the entire iterator.
|
|
33
|
+
*/
|
|
34
|
+
declare function toArray<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType[];
|
|
35
|
+
|
|
36
|
+
export { toArray };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { toIterableIterator } from './toIterableIterator.mjs';
|
|
3
|
+
|
|
4
|
+
function toArray(iterable) {
|
|
5
|
+
return [...toIterableIterator(iterable)];
|
|
6
|
+
}
|
|
7
|
+
__name(toArray, "toArray");
|
|
8
|
+
|
|
9
|
+
export { toArray };
|
|
10
|
+
//# sourceMappingURL=out.js.map
|
|
11
|
+
//# sourceMappingURL=toArray.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/toArray.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAiC5B,SAAS,QAA2B,UAA0D;AACpG,SAAO,CAAC,GAAG,mBAAmB,QAAQ,CAAC;AACxC;AAFgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns an array with all the elements.\n *\n * @param iterable The iterator to convert to an array.\n * @returns An array containing the values of the provided iterator.\n *\n * @example\n * ```typescript\n * import { toArray } from '@sapphire/iterator-utilities';\n *\n * const array = [1, 2, 3, 4, 5];\n * console.log(toArray(array));\n * // Output: [1, 2, 3, 4, 5]\n *\n * const set = new Set([1, 2, 3, 4, 5]);\n * console.log(toArray(set));\n * // Output: [1, 2, 3, 4, 5]\n *\n * const map = new Map([['a', 1], ['b', 2], ['c', 3]]);\n * console.log(toArray(map));\n * // Output: [['a', 1], ['b', 2], ['c', 3]]\n *\n * const string = 'hello';\n * console.log(toArray(string));\n * // Output: ['h', 'e', 'l', 'l', 'o']\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function toArray<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType[] {\n\treturn [...toIterableIterator(iterable)];\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an iterable iterator from an iterable or iterator-like object.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable The iterable or iterable-like object to convert.
|
|
7
|
+
* @returns An iterable iterator.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { toIterableIterator } from '@sapphire/iterator-utilities';
|
|
12
|
+
*
|
|
13
|
+
* const array = [1, 2, 3, 4, 5];
|
|
14
|
+
* console.log([...toIterableIterator(array)]);
|
|
15
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
16
|
+
*
|
|
17
|
+
* const set = new Set([1, 2, 3, 4, 5]);
|
|
18
|
+
* console.log([...toIterableIterator(set)]);
|
|
19
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
20
|
+
*
|
|
21
|
+
* const map = new Map([['a', 1], ['b', 2], ['c', 3]]);
|
|
22
|
+
* console.log([...toIterableIterator(map)]);
|
|
23
|
+
* // Output: [['a', 1], ['b', 2], ['c', 3]]
|
|
24
|
+
*
|
|
25
|
+
* const string = 'hello';
|
|
26
|
+
* console.log([...toIterableIterator(string)]);
|
|
27
|
+
* // Output: ['h', 'e', 'l', 'l', 'o']
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function toIterableIterator<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType>;
|
|
31
|
+
|
|
32
|
+
export { toIterableIterator };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { from } from './from.mjs';
|
|
3
|
+
import { makeIterableIterator } from './shared/_makeIterableIterator.mjs';
|
|
4
|
+
|
|
5
|
+
function toIterableIterator(iterable) {
|
|
6
|
+
const resolvedIterable = from(iterable);
|
|
7
|
+
if (Symbol.iterator in resolvedIterable) {
|
|
8
|
+
return resolvedIterable;
|
|
9
|
+
}
|
|
10
|
+
return makeIterableIterator(() => resolvedIterable.next());
|
|
11
|
+
}
|
|
12
|
+
__name(toIterableIterator, "toIterableIterator");
|
|
13
|
+
|
|
14
|
+
export { toIterableIterator };
|
|
15
|
+
//# sourceMappingURL=out.js.map
|
|
16
|
+
//# sourceMappingURL=toIterableIterator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/toIterableIterator.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,YAAqC;AAC9C,SAAS,4BAA4B;AA6B9B,SAAS,mBAAsC,UAA0E;AAC/H,QAAM,mBAAmB,KAAK,QAAQ;AACtC,MAAI,OAAO,YAAY,kBAAkB;AACxC,WAAO;AAAA,EACR;AAEA,SAAO,qBAAqB,MAAM,iBAAiB,KAAK,CAAC;AAC1D;AAPgB","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\n\n/**\n * Creates an iterable iterator from an iterable or iterator-like object.\n *\n * @param iterable The iterable or iterable-like object to convert.\n * @returns An iterable iterator.\n *\n * @example\n * ```typescript\n * import { toIterableIterator } from '@sapphire/iterator-utilities';\n *\n * const array = [1, 2, 3, 4, 5];\n * console.log([...toIterableIterator(array)]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * const set = new Set([1, 2, 3, 4, 5]);\n * console.log([...toIterableIterator(set)]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * const map = new Map([['a', 1], ['b', 2], ['c', 3]]);\n * console.log([...toIterableIterator(map)]);\n * // Output: [['a', 1], ['b', 2], ['c', 3]]\n *\n * const string = 'hello';\n * console.log([...toIterableIterator(string)]);\n * // Output: ['h', 'e', 'l', 'l', 'o']\n * ```\n */\nexport function toIterableIterator<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\tconst resolvedIterable = from(iterable);\n\tif (Symbol.iterator in resolvedIterable) {\n\t\treturn resolvedIterable;\n\t}\n\n\treturn makeIterableIterator(() => resolvedIterable.next());\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an iterable with the elements that are in either input iterable.
|
|
5
|
+
*
|
|
6
|
+
* @param iterables The iterators to combine.
|
|
7
|
+
* @returns An iterator that yields the union of the provided iterators.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { union } from '@sapphire/iterator-utilities';
|
|
12
|
+
*
|
|
13
|
+
* const iterable1 = [1, 2, 3];
|
|
14
|
+
* const iterable2 = [3, 4, 5];
|
|
15
|
+
* console.log([...union(iterable1, iterable2)]);
|
|
16
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
17
|
+
*/
|
|
18
|
+
declare function union<const ElementType>(...iterables: IterableResolvable<ElementType>[]): IterableIterator<ElementType>;
|
|
19
|
+
|
|
20
|
+
export { union };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { toIterableIterator } from './toIterableIterator.mjs';
|
|
3
|
+
|
|
4
|
+
function* union(...iterables) {
|
|
5
|
+
const seen = /* @__PURE__ */ new Set();
|
|
6
|
+
for (const iterator of iterables) {
|
|
7
|
+
for (const value of toIterableIterator(iterator)) {
|
|
8
|
+
if (!seen.has(value)) {
|
|
9
|
+
seen.add(value);
|
|
10
|
+
yield value;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
__name(union, "union");
|
|
16
|
+
|
|
17
|
+
export { union };
|
|
18
|
+
//# sourceMappingURL=out.js.map
|
|
19
|
+
//# sourceMappingURL=union.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/union.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAiB5B,UAAU,SAA4B,WAA6E;AACzH,QAAM,OAAO,oBAAI,IAAiB;AAClC,aAAW,YAAY,WAAW;AACjC,eAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,UAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AACrB,aAAK,IAAI,KAAK;AACd,cAAM;AAAA,MACP;AAAA,IACD;AAAA,EACD;AACD;AAViB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the elements that are in either input iterable.\n *\n * @param iterables The iterators to combine.\n * @returns An iterator that yields the union of the provided iterators.\n *\n * @example\n * ```typescript\n * import { union } from '@sapphire/iterator-utilities';\n *\n * const iterable1 = [1, 2, 3];\n * const iterable2 = [3, 4, 5];\n * console.log([...union(iterable1, iterable2)]);\n * // Output: [1, 2, 3, 4, 5]\n */\nexport function* union<const ElementType>(...iterables: IterableResolvable<ElementType>[]): IterableIterator<ElementType> {\n\tconst seen = new Set<ElementType>();\n\tfor (const iterator of iterables) {\n\t\tfor (const value of toIterableIterator(iterator)) {\n\t\t\tif (!seen.has(value)) {\n\t\t\t\tseen.add(value);\n\t\t\t\tyield value;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an iterable with the unique elements of the input iterable. Under the hood, it calls {@linkcode union} with the iterable itself.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable An iterator to remove duplicates from.
|
|
7
|
+
* @returns An iterator that yields the values of the provided iterator with duplicates removed.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { unique } from '@sapphire/iterator-utilities';
|
|
12
|
+
*
|
|
13
|
+
* const iterable = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5];
|
|
14
|
+
* console.log([...unique(iterable)]);
|
|
15
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
declare function unique<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType>;
|
|
19
|
+
|
|
20
|
+
export { unique };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { union } from './union.mjs';
|
|
3
|
+
|
|
4
|
+
function unique(iterable) {
|
|
5
|
+
return union(iterable);
|
|
6
|
+
}
|
|
7
|
+
__name(unique, "unique");
|
|
8
|
+
|
|
9
|
+
export { unique };
|
|
10
|
+
//# sourceMappingURL=out.js.map
|
|
11
|
+
//# sourceMappingURL=unique.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/unique.ts"],"names":[],"mappings":";;;;;AACA,SAAS,aAAa;AAiBf,SAAS,OAA0B,UAA0E;AAEnH,SAAO,MAAM,QAAQ;AACtB;AAHgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { union } from './union';\n\n/**\n * Creates an iterable with the unique elements of the input iterable. Under the hood, it calls {@linkcode union} with the iterable itself.\n *\n * @param iterable An iterator to remove duplicates from.\n * @returns An iterator that yields the values of the provided iterator with duplicates removed.\n *\n * @example\n * ```typescript\n * import { unique } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5];\n * console.log([...unique(iterable)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function unique<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\t// The union of a single iterator is the iterator itself, with duplicates removed.\n\treturn union(iterable);\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an array for each element of the input iterable, transposing the input iterable. The opposite of {@linkcode zip}.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable An iterable to unzip.
|
|
7
|
+
* @returns An array of iterables that yield the values of the original iterable.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { unzip } from '@sapphire/iterator-utilities';
|
|
12
|
+
*
|
|
13
|
+
* const iterable = [[1, 'a'], [2, 'b'], [3, 'c']];
|
|
14
|
+
* const [numbers, letters] = unzip(iterable);
|
|
15
|
+
*
|
|
16
|
+
* console.log(numbers);
|
|
17
|
+
* // Output: [1, 2, 3]
|
|
18
|
+
*
|
|
19
|
+
* console.log(letters);
|
|
20
|
+
* // Output: ['a', 'b', 'c']
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
*
|
|
25
|
+
* This function consumes the entire iterable.
|
|
26
|
+
*/
|
|
27
|
+
declare function unzip<const ElementType extends readonly any[]>(iterable: IterableResolvable<ElementType>): UnzipIterable<ElementType>;
|
|
28
|
+
type UnzipIterable<ElementType extends readonly any[]> = {
|
|
29
|
+
-readonly [P in keyof ElementType]: ElementType[P][];
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { type UnzipIterable, unzip };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { toIterableIterator } from './toIterableIterator.mjs';
|
|
3
|
+
|
|
4
|
+
function unzip(iterable) {
|
|
5
|
+
const resolvedIterable = toIterableIterator(iterable);
|
|
6
|
+
const firstResult = resolvedIterable.next();
|
|
7
|
+
if (firstResult.done) {
|
|
8
|
+
throw new Error("Cannot unzip an empty iterable");
|
|
9
|
+
}
|
|
10
|
+
if (!Array.isArray(firstResult.value)) {
|
|
11
|
+
throw new Error("Cannot unzip an iterable that does not yield an array");
|
|
12
|
+
}
|
|
13
|
+
const size = firstResult.value.length;
|
|
14
|
+
const results = [];
|
|
15
|
+
for (let i = 0; i < size; i++)
|
|
16
|
+
results.push([firstResult.value[i]]);
|
|
17
|
+
for (const entries of resolvedIterable) {
|
|
18
|
+
if (!Array.isArray(entries)) {
|
|
19
|
+
throw new Error("Cannot unzip an iterable that does not yield an array");
|
|
20
|
+
}
|
|
21
|
+
if (entries.length !== size) {
|
|
22
|
+
throw new Error("Cannot unzip an iterable that yields arrays of different sizes");
|
|
23
|
+
}
|
|
24
|
+
for (let i = 0; i < size; i++) {
|
|
25
|
+
results[i].push(entries[i]);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return results;
|
|
29
|
+
}
|
|
30
|
+
__name(unzip, "unzip");
|
|
31
|
+
|
|
32
|
+
export { unzip };
|
|
33
|
+
//# sourceMappingURL=out.js.map
|
|
34
|
+
//# sourceMappingURL=unzip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/unzip.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AA0B5B,SAAS,MAAgD,UAAuE;AACtI,QAAM,mBAAmB,mBAAmB,QAAQ;AACpD,QAAM,cAAc,iBAAiB,KAAK;AAC1C,MAAI,YAAY,MAAM;AACrB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EACjD;AAEA,MAAI,CAAC,MAAM,QAAQ,YAAY,KAAK,GAAG;AACtC,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAEA,QAAM,OAAO,YAAY,MAAM;AAC/B,QAAM,UAAU,CAAC;AACjB,WAAS,IAAI,GAAG,IAAI,MAAM;AAAK,YAAQ,KAAK,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC;AAClE,aAAW,WAAW,kBAAkB;AACvC,QAAI,CAAC,MAAM,QAAQ,OAAO,GAAG;AAC5B,YAAM,IAAI,MAAM,uDAAuD;AAAA,IACxE;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC5B,YAAM,IAAI,MAAM,gEAAgE;AAAA,IACjF;AAEA,aAAS,IAAI,GAAG,IAAI,MAAM,KAAK;AAC9B,cAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;AAAA,IAC3B;AAAA,EACD;AAEA,SAAO;AACR;AA7BgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an array for each element of the input iterable, transposing the input iterable. The opposite of {@linkcode zip}.\n *\n * @param iterable An iterable to unzip.\n * @returns An array of iterables that yield the values of the original iterable.\n *\n * @example\n * ```typescript\n * import { unzip } from '@sapphire/iterator-utilities';\n *\n * const iterable = [[1, 'a'], [2, 'b'], [3, 'c']];\n * const [numbers, letters] = unzip(iterable);\n *\n * console.log(numbers);\n * // Output: [1, 2, 3]\n *\n * console.log(letters);\n * // Output: ['a', 'b', 'c']\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterable.\n */\nexport function unzip<const ElementType extends readonly any[]>(iterable: IterableResolvable<ElementType>): UnzipIterable<ElementType> {\n\tconst resolvedIterable = toIterableIterator(iterable);\n\tconst firstResult = resolvedIterable.next();\n\tif (firstResult.done) {\n\t\tthrow new Error('Cannot unzip an empty iterable');\n\t}\n\n\tif (!Array.isArray(firstResult.value)) {\n\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t}\n\n\tconst size = firstResult.value.length;\n\tconst results = [] as ElementType[][];\n\tfor (let i = 0; i < size; i++) results.push([firstResult.value[i]]);\n\tfor (const entries of resolvedIterable) {\n\t\tif (!Array.isArray(entries)) {\n\t\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t\t}\n\n\t\tif (entries.length !== size) {\n\t\t\tthrow new Error('Cannot unzip an iterable that yields arrays of different sizes');\n\t\t}\n\n\t\tfor (let i = 0; i < size; i++) {\n\t\t\tresults[i].push(entries[i]);\n\t\t}\n\t}\n\n\treturn results as UnzipIterable<ElementType>;\n}\n\nexport type UnzipIterable<ElementType extends readonly any[]> = {\n\t-readonly [P in keyof ElementType]: ElementType[P][];\n};\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an iterable with the elements of the input iterables zipped together. The opposite of {@linkcode unzip}.
|
|
5
|
+
*
|
|
6
|
+
* @param iterables The iterables to zip together.
|
|
7
|
+
* @returns A new iterable that yields the next value of each iterable in the list.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { zip } from '@sapphire/iterator-utilities';
|
|
12
|
+
*
|
|
13
|
+
* const iterable1 = [1, 2, 3];
|
|
14
|
+
* const iterable2 = ['a', 'b', 'c'];
|
|
15
|
+
* const iterable3 = [true, false, true];
|
|
16
|
+
*
|
|
17
|
+
* console.log(zip(iterable1, iterable2, iterable3));
|
|
18
|
+
* // Output: [
|
|
19
|
+
* // [1, 'a', true],
|
|
20
|
+
* // [2, 'b', false],
|
|
21
|
+
* // [3, 'c', true]
|
|
22
|
+
* // ]
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function zip<const Iterables extends readonly IterableResolvable<any>[]>(...iterables: Iterables): ZipIterators<Iterables>;
|
|
26
|
+
type ZipIterators<Iterators extends readonly IterableResolvable<any>[]> = IterableIterator<{
|
|
27
|
+
-readonly [P in keyof Iterators]: Iterators[P] extends IterableResolvable<infer T> ? T : never;
|
|
28
|
+
}>;
|
|
29
|
+
|
|
30
|
+
export { type ZipIterators, zip };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { __name } from '../chunk-G5GHKT7C.mjs';
|
|
2
|
+
import { from } from './from.mjs';
|
|
3
|
+
|
|
4
|
+
function* zip(...iterables) {
|
|
5
|
+
const resolvedIterables = iterables.map((iterable) => from(iterable));
|
|
6
|
+
while (true) {
|
|
7
|
+
const results = [];
|
|
8
|
+
for (const resolvedIterable of resolvedIterables) {
|
|
9
|
+
const result = resolvedIterable.next();
|
|
10
|
+
if (result.done)
|
|
11
|
+
return;
|
|
12
|
+
results.push(result.value);
|
|
13
|
+
}
|
|
14
|
+
yield results;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
__name(zip, "zip");
|
|
18
|
+
|
|
19
|
+
export { zip };
|
|
20
|
+
//# sourceMappingURL=out.js.map
|
|
21
|
+
//# sourceMappingURL=zip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/zip.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,YAAqC;AAwBvC,UAAU,OAAmE,WAA+C;AAClI,QAAM,oBAAoB,UAAU,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC;AACpE,SAAO,MAAM;AACZ,UAAM,UAAU,CAAC;AACjB,eAAW,oBAAoB,mBAAmB;AACjD,YAAM,SAAS,iBAAiB,KAAK;AACrC,UAAI,OAAO;AAAM;AAEjB,cAAQ,KAAK,OAAO,KAAK;AAAA,IAC1B;AAEA,UAAM;AAAA,EACP;AACD;AAbiB","sourcesContent":["import { from, type IterableResolvable } from './from';\n\n/**\n * Creates an iterable with the elements of the input iterables zipped together. The opposite of {@linkcode unzip}.\n *\n * @param iterables The iterables to zip together.\n * @returns A new iterable that yields the next value of each iterable in the list.\n *\n * @example\n * ```typescript\n * import { zip } from '@sapphire/iterator-utilities';\n *\n * const iterable1 = [1, 2, 3];\n * const iterable2 = ['a', 'b', 'c'];\n * const iterable3 = [true, false, true];\n *\n * console.log(zip(iterable1, iterable2, iterable3));\n * // Output: [\n * // \t[1, 'a', true],\n * // \t[2, 'b', false],\n * // \t[3, 'c', true]\n * // ]\n * ```\n */\nexport function* zip<const Iterables extends readonly IterableResolvable<any>[]>(...iterables: Iterables): ZipIterators<Iterables> {\n\tconst resolvedIterables = iterables.map((iterable) => from(iterable));\n\twhile (true) {\n\t\tconst results = [] as any[];\n\t\tfor (const resolvedIterable of resolvedIterables) {\n\t\t\tconst result = resolvedIterable.next();\n\t\t\tif (result.done) return;\n\n\t\t\tresults.push(result.value);\n\t\t}\n\n\t\tyield results as any;\n\t}\n}\n\nexport type ZipIterators<Iterators extends readonly IterableResolvable<any>[]> = IterableIterator<{\n\t-readonly [P in keyof Iterators]: Iterators[P] extends IterableResolvable<infer T> ? T : never;\n}>;\n"]}
|