@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,834 @@
|
|
|
1
|
+
var SapphireIteratorUtilities = (function (exports) {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
|
|
7
|
+
// src/lib/from.ts
|
|
8
|
+
function from(value) {
|
|
9
|
+
if (typeof value === "object" && value !== null) {
|
|
10
|
+
if (typeof value[Symbol.iterator] === "function") {
|
|
11
|
+
return value[Symbol.iterator]();
|
|
12
|
+
}
|
|
13
|
+
if (typeof value.next === "function") {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (typeof value === "string") {
|
|
18
|
+
return value[Symbol.iterator]();
|
|
19
|
+
}
|
|
20
|
+
throw new TypeError(`${String(value)} cannot be converted to an iterable`);
|
|
21
|
+
}
|
|
22
|
+
__name(from, "from");
|
|
23
|
+
|
|
24
|
+
// src/lib/shared/_makeIterableIterator.ts
|
|
25
|
+
function makeIterableIterator(next) {
|
|
26
|
+
return {
|
|
27
|
+
next,
|
|
28
|
+
[Symbol.iterator]() {
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
__name(makeIterableIterator, "makeIterableIterator");
|
|
34
|
+
|
|
35
|
+
// src/lib/toIterableIterator.ts
|
|
36
|
+
function toIterableIterator(iterable) {
|
|
37
|
+
const resolvedIterable = from(iterable);
|
|
38
|
+
if (Symbol.iterator in resolvedIterable) {
|
|
39
|
+
return resolvedIterable;
|
|
40
|
+
}
|
|
41
|
+
return makeIterableIterator(() => resolvedIterable.next());
|
|
42
|
+
}
|
|
43
|
+
__name(toIterableIterator, "toIterableIterator");
|
|
44
|
+
|
|
45
|
+
// src/lib/chain.ts
|
|
46
|
+
function* chain(...iterables) {
|
|
47
|
+
for (const iterable of iterables) {
|
|
48
|
+
yield* toIterableIterator(iterable);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
__name(chain, "chain");
|
|
52
|
+
|
|
53
|
+
// src/lib/append.ts
|
|
54
|
+
function append(iterable, ...iterables) {
|
|
55
|
+
return chain(iterable, ...iterables);
|
|
56
|
+
}
|
|
57
|
+
__name(append, "append");
|
|
58
|
+
|
|
59
|
+
// src/lib/empty.ts
|
|
60
|
+
function empty() {
|
|
61
|
+
return makeIterableIterator(() => ({ done: true, value: void 0 }));
|
|
62
|
+
}
|
|
63
|
+
__name(empty, "empty");
|
|
64
|
+
|
|
65
|
+
// src/lib/shared/_assertNotNegative.ts
|
|
66
|
+
function assertNotNegative(value, original) {
|
|
67
|
+
if (value < 0) {
|
|
68
|
+
throw new RangeError(`${original} must be a non-negative number`);
|
|
69
|
+
}
|
|
70
|
+
return value;
|
|
71
|
+
}
|
|
72
|
+
__name(assertNotNegative, "assertNotNegative");
|
|
73
|
+
|
|
74
|
+
// src/lib/shared/_toNumberOrThrow.ts
|
|
75
|
+
function toNumberOrThrow(value) {
|
|
76
|
+
switch (typeof value) {
|
|
77
|
+
case "bigint":
|
|
78
|
+
throw new TypeError("Cannot convert a BigInt value to a number");
|
|
79
|
+
case "symbol":
|
|
80
|
+
throw new TypeError("Cannot convert a Symbol value to a number");
|
|
81
|
+
case "boolean":
|
|
82
|
+
return value ? 1 : 0;
|
|
83
|
+
case "number":
|
|
84
|
+
return assertNumber(value, value);
|
|
85
|
+
case "undefined":
|
|
86
|
+
throw new TypeError("Cannot convert an undefined value to a number");
|
|
87
|
+
default:
|
|
88
|
+
return assertNumber(Number(value), value);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
__name(toNumberOrThrow, "toNumberOrThrow");
|
|
92
|
+
function assertNumber(value, original) {
|
|
93
|
+
if (Number.isNaN(value)) {
|
|
94
|
+
throw new RangeError(`${original} must be a non-NaN number`);
|
|
95
|
+
}
|
|
96
|
+
return value;
|
|
97
|
+
}
|
|
98
|
+
__name(assertNumber, "assertNumber");
|
|
99
|
+
|
|
100
|
+
// src/lib/shared/_toIntegerOrInfinityOrThrow.ts
|
|
101
|
+
function toIntegerOrInfinityOrThrow(value) {
|
|
102
|
+
const number = toNumberOrThrow(value);
|
|
103
|
+
if (Number.isNaN(number) || number === 0)
|
|
104
|
+
return 0;
|
|
105
|
+
if (number === Number.POSITIVE_INFINITY)
|
|
106
|
+
return Number.POSITIVE_INFINITY;
|
|
107
|
+
if (number === Number.NEGATIVE_INFINITY)
|
|
108
|
+
return Number.NEGATIVE_INFINITY;
|
|
109
|
+
return Math.trunc(number);
|
|
110
|
+
}
|
|
111
|
+
__name(toIntegerOrInfinityOrThrow, "toIntegerOrInfinityOrThrow");
|
|
112
|
+
|
|
113
|
+
// src/lib/drop.ts
|
|
114
|
+
function drop(iterable, count2) {
|
|
115
|
+
count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
|
|
116
|
+
const resolvedIterable = toIterableIterator(iterable);
|
|
117
|
+
if (count2 === 0)
|
|
118
|
+
return resolvedIterable;
|
|
119
|
+
if (count2 === Number.POSITIVE_INFINITY)
|
|
120
|
+
return empty();
|
|
121
|
+
for (let i = 0; i < count2; i++) {
|
|
122
|
+
if (resolvedIterable.next().done)
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
return resolvedIterable;
|
|
126
|
+
}
|
|
127
|
+
__name(drop, "drop");
|
|
128
|
+
|
|
129
|
+
// src/lib/first.ts
|
|
130
|
+
function first(iterable) {
|
|
131
|
+
return from(iterable).next().value;
|
|
132
|
+
}
|
|
133
|
+
__name(first, "first");
|
|
134
|
+
|
|
135
|
+
// src/lib/at.ts
|
|
136
|
+
function at(iterable, index) {
|
|
137
|
+
index = assertNotNegative(toIntegerOrInfinityOrThrow(index), index);
|
|
138
|
+
return first(index === 0 ? iterable : drop(iterable, index));
|
|
139
|
+
}
|
|
140
|
+
__name(at, "at");
|
|
141
|
+
|
|
142
|
+
// src/lib/shared/_assertFunction.ts
|
|
143
|
+
function assertFunction(value) {
|
|
144
|
+
if (typeof value !== "function") {
|
|
145
|
+
throw new TypeError(`${value} must be a function`);
|
|
146
|
+
}
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
__name(assertFunction, "assertFunction");
|
|
150
|
+
|
|
151
|
+
// src/lib/map.ts
|
|
152
|
+
function* map(iterable, callbackFn) {
|
|
153
|
+
callbackFn = assertFunction(callbackFn);
|
|
154
|
+
let index = 0;
|
|
155
|
+
for (const element of toIterableIterator(iterable)) {
|
|
156
|
+
yield callbackFn(element, index++);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
__name(map, "map");
|
|
160
|
+
|
|
161
|
+
// src/lib/average.ts
|
|
162
|
+
function average(iterable) {
|
|
163
|
+
let sum2 = 0;
|
|
164
|
+
let total = 0;
|
|
165
|
+
for (const value of map(iterable, toNumberOrThrow)) {
|
|
166
|
+
sum2 += value;
|
|
167
|
+
total++;
|
|
168
|
+
}
|
|
169
|
+
return total === 0 ? null : sum2 / total;
|
|
170
|
+
}
|
|
171
|
+
__name(average, "average");
|
|
172
|
+
|
|
173
|
+
// src/lib/shared/_assertPositive.ts
|
|
174
|
+
function assertPositive(value, original) {
|
|
175
|
+
if (value <= 0) {
|
|
176
|
+
throw new RangeError(`${original} must be a positive number`);
|
|
177
|
+
}
|
|
178
|
+
return value;
|
|
179
|
+
}
|
|
180
|
+
__name(assertPositive, "assertPositive");
|
|
181
|
+
|
|
182
|
+
// src/lib/shared/_toIntegerOrThrow.ts
|
|
183
|
+
function toIntegerOrThrow(value) {
|
|
184
|
+
const number = toNumberOrThrow(value);
|
|
185
|
+
if (Number.isNaN(number) || number === 0)
|
|
186
|
+
return 0;
|
|
187
|
+
if (number === Number.POSITIVE_INFINITY)
|
|
188
|
+
throw new RangeError("+Infinity cannot be represented as an integer");
|
|
189
|
+
if (number === Number.NEGATIVE_INFINITY)
|
|
190
|
+
throw new RangeError("-Infinity cannot be represented as an integer");
|
|
191
|
+
return Math.trunc(number);
|
|
192
|
+
}
|
|
193
|
+
__name(toIntegerOrThrow, "toIntegerOrThrow");
|
|
194
|
+
|
|
195
|
+
// src/lib/chunk.ts
|
|
196
|
+
function* chunk(iterable, size) {
|
|
197
|
+
size = assertPositive(toIntegerOrThrow(size), size);
|
|
198
|
+
let buffer = [];
|
|
199
|
+
for (const element of toIterableIterator(iterable)) {
|
|
200
|
+
buffer.push(element);
|
|
201
|
+
if (buffer.length === size) {
|
|
202
|
+
yield buffer;
|
|
203
|
+
buffer = [];
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (buffer.length) {
|
|
207
|
+
yield buffer;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
__name(chunk, "chunk");
|
|
211
|
+
|
|
212
|
+
// src/lib/filter.ts
|
|
213
|
+
function* filter(iterable, callbackFn) {
|
|
214
|
+
callbackFn = assertFunction(callbackFn);
|
|
215
|
+
let index = 0;
|
|
216
|
+
for (const value of toIterableIterator(iterable)) {
|
|
217
|
+
if (callbackFn(value, index++))
|
|
218
|
+
yield value;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
__name(filter, "filter");
|
|
222
|
+
|
|
223
|
+
// src/lib/compact.ts
|
|
224
|
+
function compact(iterable) {
|
|
225
|
+
return filter(iterable, (value) => value !== null && value !== void 0);
|
|
226
|
+
}
|
|
227
|
+
__name(compact, "compact");
|
|
228
|
+
|
|
229
|
+
// src/lib/compress.ts
|
|
230
|
+
function* compress(iterable, selectors) {
|
|
231
|
+
const resolvedSelectors = from(selectors);
|
|
232
|
+
for (const resolvedIterableResult of toIterableIterator(iterable)) {
|
|
233
|
+
const selectorResult = resolvedSelectors.next();
|
|
234
|
+
if (selectorResult.done) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
if (selectorResult.value) {
|
|
238
|
+
yield resolvedIterableResult;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
__name(compress, "compress");
|
|
243
|
+
|
|
244
|
+
// src/lib/contains.ts
|
|
245
|
+
function contains(iterable, value) {
|
|
246
|
+
for (const element of toIterableIterator(iterable)) {
|
|
247
|
+
if (element === value)
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
__name(contains, "contains");
|
|
253
|
+
|
|
254
|
+
// src/lib/count.ts
|
|
255
|
+
function count(iterable) {
|
|
256
|
+
let count2 = 0;
|
|
257
|
+
const resolvedIterable = from(iterable);
|
|
258
|
+
while (!resolvedIterable.next().done) {
|
|
259
|
+
count2++;
|
|
260
|
+
}
|
|
261
|
+
return count2;
|
|
262
|
+
}
|
|
263
|
+
__name(count, "count");
|
|
264
|
+
|
|
265
|
+
// src/lib/cycle.ts
|
|
266
|
+
function* cycle(iterable) {
|
|
267
|
+
const results = [];
|
|
268
|
+
for (const element of toIterableIterator(iterable)) {
|
|
269
|
+
yield element;
|
|
270
|
+
results.push(element);
|
|
271
|
+
}
|
|
272
|
+
while (results.length > 0) {
|
|
273
|
+
for (const element of results) {
|
|
274
|
+
yield element;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
__name(cycle, "cycle");
|
|
279
|
+
|
|
280
|
+
// src/lib/difference.ts
|
|
281
|
+
function difference(first2, second) {
|
|
282
|
+
const set = new Set(toIterableIterator(second));
|
|
283
|
+
return filter(first2, (value) => !set.has(value));
|
|
284
|
+
}
|
|
285
|
+
__name(difference, "difference");
|
|
286
|
+
|
|
287
|
+
// src/lib/take.ts
|
|
288
|
+
function take(iterable, count2) {
|
|
289
|
+
count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
|
|
290
|
+
if (count2 === 0)
|
|
291
|
+
return empty();
|
|
292
|
+
let i = 0;
|
|
293
|
+
const resolvedIterable = from(iterable);
|
|
294
|
+
return makeIterableIterator(
|
|
295
|
+
() => i >= count2 ? { done: true, value: void 0 } : (i++, resolvedIterable.next())
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
__name(take, "take");
|
|
299
|
+
|
|
300
|
+
// src/lib/toArray.ts
|
|
301
|
+
function toArray(iterable) {
|
|
302
|
+
return [...toIterableIterator(iterable)];
|
|
303
|
+
}
|
|
304
|
+
__name(toArray, "toArray");
|
|
305
|
+
|
|
306
|
+
// src/lib/dropLast.ts
|
|
307
|
+
function dropLast(iterable, count2) {
|
|
308
|
+
count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
|
|
309
|
+
const array = toArray(iterable);
|
|
310
|
+
if (array.length <= count2)
|
|
311
|
+
return empty();
|
|
312
|
+
return take(array.values(), array.length - count2);
|
|
313
|
+
}
|
|
314
|
+
__name(dropLast, "dropLast");
|
|
315
|
+
|
|
316
|
+
// src/lib/dropWhile.ts
|
|
317
|
+
function* dropWhile(iterable, callbackFn) {
|
|
318
|
+
callbackFn = assertFunction(callbackFn);
|
|
319
|
+
let index = 0;
|
|
320
|
+
for (const value of toIterableIterator(iterable)) {
|
|
321
|
+
if (!callbackFn(value, index++)) {
|
|
322
|
+
yield value;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
__name(dropWhile, "dropWhile");
|
|
327
|
+
|
|
328
|
+
// src/lib/enumerate.ts
|
|
329
|
+
function* enumerate(iterable) {
|
|
330
|
+
let index = 0;
|
|
331
|
+
for (const value of toIterableIterator(iterable)) {
|
|
332
|
+
yield [index++, value];
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
__name(enumerate, "enumerate");
|
|
336
|
+
|
|
337
|
+
// src/lib/every.ts
|
|
338
|
+
function every(iterable, callbackFn) {
|
|
339
|
+
callbackFn = assertFunction(callbackFn);
|
|
340
|
+
let index = 0;
|
|
341
|
+
for (const value of toIterableIterator(iterable)) {
|
|
342
|
+
if (!callbackFn(value, index++))
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
347
|
+
__name(every, "every");
|
|
348
|
+
|
|
349
|
+
// src/lib/find.ts
|
|
350
|
+
function find(iterable, callbackFn) {
|
|
351
|
+
return first(filter(iterable, callbackFn));
|
|
352
|
+
}
|
|
353
|
+
__name(find, "find");
|
|
354
|
+
|
|
355
|
+
// src/lib/findIndex.ts
|
|
356
|
+
function findIndex(iterable, callbackFn) {
|
|
357
|
+
callbackFn = assertFunction(callbackFn);
|
|
358
|
+
let index = 0;
|
|
359
|
+
for (const element of toIterableIterator(iterable)) {
|
|
360
|
+
if (callbackFn(element, index)) {
|
|
361
|
+
return index;
|
|
362
|
+
}
|
|
363
|
+
index++;
|
|
364
|
+
}
|
|
365
|
+
return -1;
|
|
366
|
+
}
|
|
367
|
+
__name(findIndex, "findIndex");
|
|
368
|
+
|
|
369
|
+
// src/lib/flat.ts
|
|
370
|
+
function* flat(iterables) {
|
|
371
|
+
for (const value of toIterableIterator(iterables)) {
|
|
372
|
+
yield* toIterableIterator(value);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
__name(flat, "flat");
|
|
376
|
+
|
|
377
|
+
// src/lib/flatMap.ts
|
|
378
|
+
function* flatMap(iterable, callbackFn) {
|
|
379
|
+
callbackFn = assertFunction(callbackFn);
|
|
380
|
+
let index = 0;
|
|
381
|
+
for (const value of toIterableIterator(iterable)) {
|
|
382
|
+
yield* toIterableIterator(callbackFn(value, index++));
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
__name(flatMap, "flatMap");
|
|
386
|
+
|
|
387
|
+
// src/lib/forEach.ts
|
|
388
|
+
function forEach(iterable, callbackFn) {
|
|
389
|
+
callbackFn = assertFunction(callbackFn);
|
|
390
|
+
let index = 0;
|
|
391
|
+
for (const element of toIterableIterator(iterable)) {
|
|
392
|
+
callbackFn(element, index++);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
__name(forEach, "forEach");
|
|
396
|
+
|
|
397
|
+
// src/lib/indexOf.ts
|
|
398
|
+
function indexOf(iterable, value) {
|
|
399
|
+
let index = 0;
|
|
400
|
+
for (const element of toIterableIterator(iterable)) {
|
|
401
|
+
if (element === value) {
|
|
402
|
+
return index;
|
|
403
|
+
}
|
|
404
|
+
index++;
|
|
405
|
+
}
|
|
406
|
+
return -1;
|
|
407
|
+
}
|
|
408
|
+
__name(indexOf, "indexOf");
|
|
409
|
+
|
|
410
|
+
// src/lib/intersect.ts
|
|
411
|
+
function intersect(first2, second) {
|
|
412
|
+
const set = new Set(toIterableIterator(second));
|
|
413
|
+
return filter(first2, (value) => set.has(value));
|
|
414
|
+
}
|
|
415
|
+
__name(intersect, "intersect");
|
|
416
|
+
|
|
417
|
+
// src/lib/isEmpty.ts
|
|
418
|
+
function isEmpty(iterable) {
|
|
419
|
+
return from(iterable).next().done ?? false;
|
|
420
|
+
}
|
|
421
|
+
__name(isEmpty, "isEmpty");
|
|
422
|
+
|
|
423
|
+
// src/lib/last.ts
|
|
424
|
+
function last(iterable) {
|
|
425
|
+
let last2;
|
|
426
|
+
for (const value of toIterableIterator(iterable)) {
|
|
427
|
+
last2 = value;
|
|
428
|
+
}
|
|
429
|
+
return last2;
|
|
430
|
+
}
|
|
431
|
+
__name(last, "last");
|
|
432
|
+
|
|
433
|
+
// src/lib/max.ts
|
|
434
|
+
function max(iterable) {
|
|
435
|
+
let max2 = null;
|
|
436
|
+
for (const value of map(iterable, toNumberOrThrow)) {
|
|
437
|
+
if (max2 === null || value > max2)
|
|
438
|
+
max2 = value;
|
|
439
|
+
}
|
|
440
|
+
return max2;
|
|
441
|
+
}
|
|
442
|
+
__name(max, "max");
|
|
443
|
+
|
|
444
|
+
// src/lib/min.ts
|
|
445
|
+
function min(iterable) {
|
|
446
|
+
let min2 = null;
|
|
447
|
+
for (const value of map(iterable, toNumberOrThrow)) {
|
|
448
|
+
if (min2 === null || value < min2)
|
|
449
|
+
min2 = value;
|
|
450
|
+
}
|
|
451
|
+
return min2;
|
|
452
|
+
}
|
|
453
|
+
__name(min, "min");
|
|
454
|
+
|
|
455
|
+
// src/lib/partition.ts
|
|
456
|
+
function partition(iterable, predicate) {
|
|
457
|
+
predicate = assertFunction(predicate);
|
|
458
|
+
const bufferLeft = [];
|
|
459
|
+
const bufferRight = [];
|
|
460
|
+
let index = 0;
|
|
461
|
+
for (const value of toIterableIterator(iterable)) {
|
|
462
|
+
if (predicate(value, index++)) {
|
|
463
|
+
bufferLeft.push(value);
|
|
464
|
+
} else {
|
|
465
|
+
bufferRight.push(value);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
return [bufferLeft, bufferRight];
|
|
469
|
+
}
|
|
470
|
+
__name(partition, "partition");
|
|
471
|
+
|
|
472
|
+
// src/lib/peekable.ts
|
|
473
|
+
function peekable(iterable) {
|
|
474
|
+
const resolvedIterable = from(iterable);
|
|
475
|
+
let peeked;
|
|
476
|
+
return {
|
|
477
|
+
next() {
|
|
478
|
+
if (peeked) {
|
|
479
|
+
const value = peeked;
|
|
480
|
+
peeked = void 0;
|
|
481
|
+
return value;
|
|
482
|
+
}
|
|
483
|
+
return resolvedIterable.next();
|
|
484
|
+
},
|
|
485
|
+
peek() {
|
|
486
|
+
peeked = peeked ?? resolvedIterable.next();
|
|
487
|
+
return peeked;
|
|
488
|
+
},
|
|
489
|
+
[Symbol.iterator]() {
|
|
490
|
+
return this;
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
__name(peekable, "peekable");
|
|
495
|
+
|
|
496
|
+
// src/lib/prepend.ts
|
|
497
|
+
function* prepend(iterable, ...iterables) {
|
|
498
|
+
for (const iterable2 of iterables) {
|
|
499
|
+
yield* toIterableIterator(iterable2);
|
|
500
|
+
}
|
|
501
|
+
yield* toIterableIterator(iterable);
|
|
502
|
+
}
|
|
503
|
+
__name(prepend, "prepend");
|
|
504
|
+
|
|
505
|
+
// src/lib/product.ts
|
|
506
|
+
function product(iterable) {
|
|
507
|
+
let result = 1;
|
|
508
|
+
for (const value of map(iterable, toNumberOrThrow)) {
|
|
509
|
+
result *= value;
|
|
510
|
+
}
|
|
511
|
+
return result;
|
|
512
|
+
}
|
|
513
|
+
__name(product, "product");
|
|
514
|
+
|
|
515
|
+
// src/lib/range.ts
|
|
516
|
+
function* range(start, end, step) {
|
|
517
|
+
start = toNumberOrThrow(start);
|
|
518
|
+
end = toNumberOrThrow(end);
|
|
519
|
+
if (step === void 0) {
|
|
520
|
+
step = start < end ? 1 : -1;
|
|
521
|
+
} else {
|
|
522
|
+
step = toNumberOrThrow(step);
|
|
523
|
+
if (step === 0) {
|
|
524
|
+
throw new RangeError("Step cannot be zero");
|
|
525
|
+
}
|
|
526
|
+
if (step > 0 && start > end) {
|
|
527
|
+
throw new RangeError("Start must be less than end when step is positive");
|
|
528
|
+
} else if (step < 0 && start < end) {
|
|
529
|
+
throw new RangeError("Start must be greater than end when step is negative");
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
if (start < end) {
|
|
533
|
+
for (let i = start; i < end; i += step) {
|
|
534
|
+
yield i;
|
|
535
|
+
}
|
|
536
|
+
} else {
|
|
537
|
+
for (let i = start; i > end; i += step) {
|
|
538
|
+
yield i;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
__name(range, "range");
|
|
543
|
+
|
|
544
|
+
// src/lib/reduce.ts
|
|
545
|
+
function reduce(iterable, callbackFn, initialValue) {
|
|
546
|
+
callbackFn = assertFunction(callbackFn);
|
|
547
|
+
let index;
|
|
548
|
+
let accumulator;
|
|
549
|
+
const resolvedIterable = toIterableIterator(iterable);
|
|
550
|
+
if (arguments.length < 3) {
|
|
551
|
+
const firstValue = resolvedIterable.next();
|
|
552
|
+
if (firstValue.done)
|
|
553
|
+
throw new TypeError("Reduce of empty iterator with no initial value");
|
|
554
|
+
index = 1;
|
|
555
|
+
accumulator = firstValue.value;
|
|
556
|
+
} else {
|
|
557
|
+
index = 0;
|
|
558
|
+
accumulator = initialValue;
|
|
559
|
+
}
|
|
560
|
+
for (const value of resolvedIterable) {
|
|
561
|
+
accumulator = callbackFn(accumulator, value, index++);
|
|
562
|
+
}
|
|
563
|
+
return accumulator;
|
|
564
|
+
}
|
|
565
|
+
__name(reduce, "reduce");
|
|
566
|
+
|
|
567
|
+
// src/lib/repeat.ts
|
|
568
|
+
function repeat(value, count2) {
|
|
569
|
+
count2 = assertNotNegative(toNumberOrThrow(count2), count2);
|
|
570
|
+
let i = 0;
|
|
571
|
+
return makeIterableIterator(
|
|
572
|
+
() => i >= count2 ? { done: true, value: void 0 } : (i++, { done: false, value })
|
|
573
|
+
);
|
|
574
|
+
}
|
|
575
|
+
__name(repeat, "repeat");
|
|
576
|
+
|
|
577
|
+
// src/lib/reverse.ts
|
|
578
|
+
function* reverse(iterable) {
|
|
579
|
+
const items = [];
|
|
580
|
+
for (const item of toIterableIterator(iterable)) {
|
|
581
|
+
items.push(item);
|
|
582
|
+
}
|
|
583
|
+
for (let i = items.length - 1; i >= 0; i--) {
|
|
584
|
+
yield items[i];
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
__name(reverse, "reverse");
|
|
588
|
+
|
|
589
|
+
// src/lib/takeLast.ts
|
|
590
|
+
function takeLast(iterable, count2) {
|
|
591
|
+
count2 = assertNotNegative(toIntegerOrInfinityOrThrow(count2), count2);
|
|
592
|
+
if (count2 === 0)
|
|
593
|
+
return empty();
|
|
594
|
+
if (count2 === Number.POSITIVE_INFINITY)
|
|
595
|
+
return toIterableIterator(iterable);
|
|
596
|
+
const array = toArray(iterable);
|
|
597
|
+
let i = Math.max(0, array.length - count2);
|
|
598
|
+
return makeIterableIterator(() => {
|
|
599
|
+
if (i >= array.length) {
|
|
600
|
+
return { done: true, value: void 0 };
|
|
601
|
+
}
|
|
602
|
+
return { done: false, value: array[i++] };
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
__name(takeLast, "takeLast");
|
|
606
|
+
|
|
607
|
+
// src/lib/slice.ts
|
|
608
|
+
function slice(iterable, start, end) {
|
|
609
|
+
start = toIntegerOrInfinityOrThrow(start ?? 0);
|
|
610
|
+
if (start === Number.NEGATIVE_INFINITY) {
|
|
611
|
+
start = 0;
|
|
612
|
+
}
|
|
613
|
+
if (end === void 0) {
|
|
614
|
+
return start >= 0 ? drop(iterable, start) : takeLast(iterable, -start);
|
|
615
|
+
}
|
|
616
|
+
end = toIntegerOrInfinityOrThrow(end);
|
|
617
|
+
if (end < 0) {
|
|
618
|
+
if (end === Number.NEGATIVE_INFINITY) {
|
|
619
|
+
return empty();
|
|
620
|
+
}
|
|
621
|
+
if (start === 0) {
|
|
622
|
+
return dropLast(iterable, -end);
|
|
623
|
+
}
|
|
624
|
+
if (start >= 0) {
|
|
625
|
+
return dropLast(drop(iterable, start), -end);
|
|
626
|
+
}
|
|
627
|
+
if (start >= end) {
|
|
628
|
+
return empty();
|
|
629
|
+
}
|
|
630
|
+
return take(takeLast(iterable, -start), end - start);
|
|
631
|
+
}
|
|
632
|
+
if (start >= end)
|
|
633
|
+
return empty();
|
|
634
|
+
return end === Number.POSITIVE_INFINITY ? drop(iterable, start) : take(drop(iterable, start), end - start);
|
|
635
|
+
}
|
|
636
|
+
__name(slice, "slice");
|
|
637
|
+
|
|
638
|
+
// src/lib/some.ts
|
|
639
|
+
function some(iterable, callbackFn) {
|
|
640
|
+
callbackFn = assertFunction(callbackFn);
|
|
641
|
+
let index = 0;
|
|
642
|
+
for (const value of toIterableIterator(iterable)) {
|
|
643
|
+
if (callbackFn(value, index++)) {
|
|
644
|
+
return true;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
return false;
|
|
648
|
+
}
|
|
649
|
+
__name(some, "some");
|
|
650
|
+
|
|
651
|
+
// src/lib/sorted.ts
|
|
652
|
+
function sorted(iterable, compareFn) {
|
|
653
|
+
return toArray(iterable).sort(compareFn).values();
|
|
654
|
+
}
|
|
655
|
+
__name(sorted, "sorted");
|
|
656
|
+
|
|
657
|
+
// src/lib/starMap.ts
|
|
658
|
+
function* starMap(iterable, callbackFn) {
|
|
659
|
+
callbackFn = assertFunction(callbackFn);
|
|
660
|
+
for (const value of toIterableIterator(iterable)) {
|
|
661
|
+
yield callbackFn(...toIterableIterator(value));
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
__name(starMap, "starMap");
|
|
665
|
+
|
|
666
|
+
// src/lib/sum.ts
|
|
667
|
+
function sum(iterable) {
|
|
668
|
+
let sum2 = 0;
|
|
669
|
+
for (const value of map(iterable, toNumberOrThrow)) {
|
|
670
|
+
sum2 += value;
|
|
671
|
+
}
|
|
672
|
+
return sum2;
|
|
673
|
+
}
|
|
674
|
+
__name(sum, "sum");
|
|
675
|
+
|
|
676
|
+
// src/lib/tee.ts
|
|
677
|
+
function tee(iterable, count2) {
|
|
678
|
+
count2 = assertNotNegative(toIntegerOrThrow(count2), count2);
|
|
679
|
+
if (count2 === 0)
|
|
680
|
+
return [];
|
|
681
|
+
const entries = [];
|
|
682
|
+
const indexes = toArray(repeat(0, count2));
|
|
683
|
+
const resolvedIterable = from(iterable);
|
|
684
|
+
const iterables = [];
|
|
685
|
+
for (let i = 0; i < count2; i++) {
|
|
686
|
+
const iterable2 = makeIterableIterator(() => {
|
|
687
|
+
if (indexes[i] >= entries.length) {
|
|
688
|
+
const result = resolvedIterable.next();
|
|
689
|
+
if (result.done) {
|
|
690
|
+
return { done: true, value: void 0 };
|
|
691
|
+
}
|
|
692
|
+
entries.push(result.value);
|
|
693
|
+
}
|
|
694
|
+
return { done: false, value: entries[indexes[i]++] };
|
|
695
|
+
});
|
|
696
|
+
iterables.push(iterable2);
|
|
697
|
+
}
|
|
698
|
+
return iterables;
|
|
699
|
+
}
|
|
700
|
+
__name(tee, "tee");
|
|
701
|
+
|
|
702
|
+
// src/lib/union.ts
|
|
703
|
+
function* union(...iterables) {
|
|
704
|
+
const seen = /* @__PURE__ */ new Set();
|
|
705
|
+
for (const iterator of iterables) {
|
|
706
|
+
for (const value of toIterableIterator(iterator)) {
|
|
707
|
+
if (!seen.has(value)) {
|
|
708
|
+
seen.add(value);
|
|
709
|
+
yield value;
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
__name(union, "union");
|
|
715
|
+
|
|
716
|
+
// src/lib/unique.ts
|
|
717
|
+
function unique(iterable) {
|
|
718
|
+
return union(iterable);
|
|
719
|
+
}
|
|
720
|
+
__name(unique, "unique");
|
|
721
|
+
|
|
722
|
+
// src/lib/unzip.ts
|
|
723
|
+
function unzip(iterable) {
|
|
724
|
+
const resolvedIterable = toIterableIterator(iterable);
|
|
725
|
+
const firstResult = resolvedIterable.next();
|
|
726
|
+
if (firstResult.done) {
|
|
727
|
+
throw new Error("Cannot unzip an empty iterable");
|
|
728
|
+
}
|
|
729
|
+
if (!Array.isArray(firstResult.value)) {
|
|
730
|
+
throw new Error("Cannot unzip an iterable that does not yield an array");
|
|
731
|
+
}
|
|
732
|
+
const size = firstResult.value.length;
|
|
733
|
+
const results = [];
|
|
734
|
+
for (let i = 0; i < size; i++)
|
|
735
|
+
results.push([firstResult.value[i]]);
|
|
736
|
+
for (const entries of resolvedIterable) {
|
|
737
|
+
if (!Array.isArray(entries)) {
|
|
738
|
+
throw new Error("Cannot unzip an iterable that does not yield an array");
|
|
739
|
+
}
|
|
740
|
+
if (entries.length !== size) {
|
|
741
|
+
throw new Error("Cannot unzip an iterable that yields arrays of different sizes");
|
|
742
|
+
}
|
|
743
|
+
for (let i = 0; i < size; i++) {
|
|
744
|
+
results[i].push(entries[i]);
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
return results;
|
|
748
|
+
}
|
|
749
|
+
__name(unzip, "unzip");
|
|
750
|
+
|
|
751
|
+
// src/lib/zip.ts
|
|
752
|
+
function* zip(...iterables) {
|
|
753
|
+
const resolvedIterables = iterables.map((iterable) => from(iterable));
|
|
754
|
+
while (true) {
|
|
755
|
+
const results = [];
|
|
756
|
+
for (const resolvedIterable of resolvedIterables) {
|
|
757
|
+
const result = resolvedIterable.next();
|
|
758
|
+
if (result.done)
|
|
759
|
+
return;
|
|
760
|
+
results.push(result.value);
|
|
761
|
+
}
|
|
762
|
+
yield results;
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
__name(zip, "zip");
|
|
766
|
+
|
|
767
|
+
exports.append = append;
|
|
768
|
+
exports.at = at;
|
|
769
|
+
exports.average = average;
|
|
770
|
+
exports.chain = chain;
|
|
771
|
+
exports.chunk = chunk;
|
|
772
|
+
exports.compact = compact;
|
|
773
|
+
exports.compress = compress;
|
|
774
|
+
exports.concat = append;
|
|
775
|
+
exports.contains = contains;
|
|
776
|
+
exports.count = count;
|
|
777
|
+
exports.cycle = cycle;
|
|
778
|
+
exports.difference = difference;
|
|
779
|
+
exports.drop = drop;
|
|
780
|
+
exports.dropLast = dropLast;
|
|
781
|
+
exports.dropWhile = dropWhile;
|
|
782
|
+
exports.empty = empty;
|
|
783
|
+
exports.enumerate = enumerate;
|
|
784
|
+
exports.every = every;
|
|
785
|
+
exports.except = difference;
|
|
786
|
+
exports.filter = filter;
|
|
787
|
+
exports.find = find;
|
|
788
|
+
exports.findIndex = findIndex;
|
|
789
|
+
exports.first = first;
|
|
790
|
+
exports.flat = flat;
|
|
791
|
+
exports.flatMap = flatMap;
|
|
792
|
+
exports.forEach = forEach;
|
|
793
|
+
exports.from = from;
|
|
794
|
+
exports.indexOf = indexOf;
|
|
795
|
+
exports.intersect = intersect;
|
|
796
|
+
exports.isEmpty = isEmpty;
|
|
797
|
+
exports.last = last;
|
|
798
|
+
exports.map = map;
|
|
799
|
+
exports.max = max;
|
|
800
|
+
exports.min = min;
|
|
801
|
+
exports.omit = difference;
|
|
802
|
+
exports.partition = partition;
|
|
803
|
+
exports.peekable = peekable;
|
|
804
|
+
exports.position = indexOf;
|
|
805
|
+
exports.prepend = prepend;
|
|
806
|
+
exports.product = product;
|
|
807
|
+
exports.range = range;
|
|
808
|
+
exports.reduce = reduce;
|
|
809
|
+
exports.repeat = repeat;
|
|
810
|
+
exports.reverse = reverse;
|
|
811
|
+
exports.skip = drop;
|
|
812
|
+
exports.skipLast = dropLast;
|
|
813
|
+
exports.skipWhile = dropWhile;
|
|
814
|
+
exports.slice = slice;
|
|
815
|
+
exports.some = some;
|
|
816
|
+
exports.sorted = sorted;
|
|
817
|
+
exports.starMap = starMap;
|
|
818
|
+
exports.sum = sum;
|
|
819
|
+
exports.take = take;
|
|
820
|
+
exports.takeLast = takeLast;
|
|
821
|
+
exports.takeWhile = filter;
|
|
822
|
+
exports.tee = tee;
|
|
823
|
+
exports.toArray = toArray;
|
|
824
|
+
exports.toIterableIterator = toIterableIterator;
|
|
825
|
+
exports.union = union;
|
|
826
|
+
exports.unique = unique;
|
|
827
|
+
exports.unzip = unzip;
|
|
828
|
+
exports.zip = zip;
|
|
829
|
+
|
|
830
|
+
return exports;
|
|
831
|
+
|
|
832
|
+
})({});
|
|
833
|
+
//# sourceMappingURL=out.js.map
|
|
834
|
+
//# sourceMappingURL=index.global.js.map
|