@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/reverse.ts"],"names":[],"mappings":";;;;AACA,SAAS,0BAA0B;AAuB5B,UAAU,QAA2B,UAA0E;AACrH,QAAM,QAAuB,CAAC;AAC9B,aAAW,QAAQ,mBAAmB,QAAQ,GAAG;AAChD,UAAM,KAAK,IAAI;AAAA,EAChB;AAEA,WAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,UAAM,MAAM,CAAC;AAAA,EACd;AACD;AATiB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns a new iterable with the elements in reverse order.\n *\n * @param iterable The iterator to reverse.\n * @returns An iterator whose element correspond to the elements of the provided iterator in reverse order.\n *\n * @example\n * ```typescript\n * import { reverse } from '@sapphire/iterator-utilities';\n *\n * console.log([...reverse([1, 2, 3, 4, 5])]);\n * // Output: [5, 4, 3, 2, 1]\n *\n * console.log([...reverse('hello')]);\n * // Output: ['o', 'l', 'l', 'e', 'h']\n * ```\n *\n * @remarks\n *\n * This function collects all elements of the provided iterator into an array before yielding them in reverse order.\n */\nexport function* reverse<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType> {\n\tconst items: ElementType[] = [];\n\tfor (const item of toIterableIterator(iterable)) {\n\t\titems.push(item);\n\t}\n\n\tfor (let i = items.length - 1; i >= 0; i--) {\n\t\tyield items[i];\n\t}\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Consumes the iterable and returns a new iterable with the elements in reverse order.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable The iterator to reverse.
|
|
7
|
+
* @returns An iterator whose element correspond to the elements of the provided iterator in reverse order.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { reverse } from '@sapphire/iterator-utilities';
|
|
12
|
+
*
|
|
13
|
+
* console.log([...reverse([1, 2, 3, 4, 5])]);
|
|
14
|
+
* // Output: [5, 4, 3, 2, 1]
|
|
15
|
+
*
|
|
16
|
+
* console.log([...reverse('hello')]);
|
|
17
|
+
* // Output: ['o', 'l', 'l', 'e', 'h']
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
*
|
|
22
|
+
* This function collects all elements of the provided iterator into an array before yielding them in reverse order.
|
|
23
|
+
*/
|
|
24
|
+
declare function reverse<const ElementType>(iterable: IterableResolvable<ElementType>): IterableIterator<ElementType>;
|
|
25
|
+
|
|
26
|
+
export { reverse };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
|
|
6
|
+
// src/lib/shared/_assertFunction.ts
|
|
7
|
+
function assertFunction(value) {
|
|
8
|
+
if (typeof value !== "function") {
|
|
9
|
+
throw new TypeError(`${value} must be a function`);
|
|
10
|
+
}
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
__name(assertFunction, "assertFunction");
|
|
14
|
+
|
|
15
|
+
exports.assertFunction = assertFunction;
|
|
16
|
+
//# sourceMappingURL=out.js.map
|
|
17
|
+
//# sourceMappingURL=_assertFunction.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/shared/_assertFunction.ts"],"names":[],"mappings":";;;;AAAO,SAAS,eAAmD,OAAe;AACjF,MAAI,OAAO,UAAU,YAAY;AAChC,UAAM,IAAI,UAAU,GAAG,KAAK,qBAAqB;AAAA,EAClD;AAEA,SAAO;AACR;AANgB","sourcesContent":["export function assertFunction<Fn extends (...args: any[]) => any>(value: Fn): Fn {\n\tif (typeof value !== 'function') {\n\t\tthrow new TypeError(`${value} must be a function`);\n\t}\n\n\treturn value;\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
|
|
6
|
+
// src/lib/shared/_assertNotNegative.ts
|
|
7
|
+
function assertNotNegative(value, original) {
|
|
8
|
+
if (value < 0) {
|
|
9
|
+
throw new RangeError(`${original} must be a non-negative number`);
|
|
10
|
+
}
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
__name(assertNotNegative, "assertNotNegative");
|
|
14
|
+
|
|
15
|
+
exports.assertNotNegative = assertNotNegative;
|
|
16
|
+
//# sourceMappingURL=out.js.map
|
|
17
|
+
//# sourceMappingURL=_assertNotNegative.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/shared/_assertNotNegative.ts"],"names":[],"mappings":";;;;AAAO,SAAS,kBAAkB,OAAe,UAA2B;AAC3E,MAAI,QAAQ,GAAG;AACd,UAAM,IAAI,WAAW,GAAG,QAAQ,gCAAgC;AAAA,EACjE;AAEA,SAAO;AACR;AANgB","sourcesContent":["export function assertNotNegative(value: number, original: unknown): number {\n\tif (value < 0) {\n\t\tthrow new RangeError(`${original} must be a non-negative number`);\n\t}\n\n\treturn value;\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
|
|
6
|
+
// src/lib/shared/_assertPositive.ts
|
|
7
|
+
function assertPositive(value, original) {
|
|
8
|
+
if (value <= 0) {
|
|
9
|
+
throw new RangeError(`${original} must be a positive number`);
|
|
10
|
+
}
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
__name(assertPositive, "assertPositive");
|
|
14
|
+
|
|
15
|
+
exports.assertPositive = assertPositive;
|
|
16
|
+
//# sourceMappingURL=out.js.map
|
|
17
|
+
//# sourceMappingURL=_assertPositive.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/shared/_assertPositive.ts"],"names":[],"mappings":";;;;AAAO,SAAS,eAAe,OAAe,UAA2B;AACxE,MAAI,SAAS,GAAG;AACf,UAAM,IAAI,WAAW,GAAG,QAAQ,4BAA4B;AAAA,EAC7D;AAEA,SAAO;AACR;AANgB","sourcesContent":["export function assertPositive(value: number, original: unknown): number {\n\tif (value <= 0) {\n\t\tthrow new RangeError(`${original} must be a positive number`);\n\t}\n\n\treturn value;\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
|
|
6
|
+
// src/lib/shared/_makeIterableIterator.ts
|
|
7
|
+
function makeIterableIterator(next) {
|
|
8
|
+
return {
|
|
9
|
+
next,
|
|
10
|
+
[Symbol.iterator]() {
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
__name(makeIterableIterator, "makeIterableIterator");
|
|
16
|
+
|
|
17
|
+
exports.makeIterableIterator = makeIterableIterator;
|
|
18
|
+
//# sourceMappingURL=out.js.map
|
|
19
|
+
//# sourceMappingURL=_makeIterableIterator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/shared/_makeIterableIterator.ts"],"names":[],"mappings":";;;;AAAO,SAAS,qBAAwC,MAAoE;AAC3H,SAAO;AAAA,IACN;AAAA,IACA,CAAC,OAAO,QAAQ,IAAI;AACnB,aAAO;AAAA,IACR;AAAA,EACD;AACD;AAPgB","sourcesContent":["export function makeIterableIterator<const ElementType>(next: Iterator<ElementType>['next']): IterableIterator<ElementType> {\n\treturn {\n\t\tnext,\n\t\t[Symbol.iterator]() {\n\t\t\treturn this;\n\t\t}\n\t};\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _toNumberOrThrow_cjs = require('./_toNumberOrThrow.cjs');
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
function toIntegerOrInfinityOrThrow(value) {
|
|
8
|
+
const number = _toNumberOrThrow_cjs.toNumberOrThrow(value);
|
|
9
|
+
if (Number.isNaN(number) || number === 0)
|
|
10
|
+
return 0;
|
|
11
|
+
if (number === Number.POSITIVE_INFINITY)
|
|
12
|
+
return Number.POSITIVE_INFINITY;
|
|
13
|
+
if (number === Number.NEGATIVE_INFINITY)
|
|
14
|
+
return Number.NEGATIVE_INFINITY;
|
|
15
|
+
return Math.trunc(number);
|
|
16
|
+
}
|
|
17
|
+
__name(toIntegerOrInfinityOrThrow, "toIntegerOrInfinityOrThrow");
|
|
18
|
+
|
|
19
|
+
exports.toIntegerOrInfinityOrThrow = toIntegerOrInfinityOrThrow;
|
|
20
|
+
//# sourceMappingURL=out.js.map
|
|
21
|
+
//# sourceMappingURL=_toIntegerOrInfinityOrThrow.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/shared/_toIntegerOrInfinityOrThrow.ts"],"names":[],"mappings":";;;;AAAA,SAAS,uBAAuB;AAEzB,SAAS,2BAA2B,OAAuB;AACjE,QAAM,SAAS,gBAAgB,KAAK;AACpC,MAAI,OAAO,MAAM,MAAM,KAAK,WAAW;AAAG,WAAO;AACjD,MAAI,WAAW,OAAO;AAAmB,WAAO,OAAO;AACvD,MAAI,WAAW,OAAO;AAAmB,WAAO,OAAO;AAEvD,SAAO,KAAK,MAAM,MAAM;AACzB;AAPgB","sourcesContent":["import { toNumberOrThrow } from './_toNumberOrThrow';\n\nexport function toIntegerOrInfinityOrThrow(value: number): number {\n\tconst number = toNumberOrThrow(value);\n\tif (Number.isNaN(number) || number === 0) return 0;\n\tif (number === Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;\n\tif (number === Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;\n\n\treturn Math.trunc(number);\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _toNumberOrThrow_cjs = require('./_toNumberOrThrow.cjs');
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
function toIntegerOrThrow(value) {
|
|
8
|
+
const number = _toNumberOrThrow_cjs.toNumberOrThrow(value);
|
|
9
|
+
if (Number.isNaN(number) || number === 0)
|
|
10
|
+
return 0;
|
|
11
|
+
if (number === Number.POSITIVE_INFINITY)
|
|
12
|
+
throw new RangeError("+Infinity cannot be represented as an integer");
|
|
13
|
+
if (number === Number.NEGATIVE_INFINITY)
|
|
14
|
+
throw new RangeError("-Infinity cannot be represented as an integer");
|
|
15
|
+
return Math.trunc(number);
|
|
16
|
+
}
|
|
17
|
+
__name(toIntegerOrThrow, "toIntegerOrThrow");
|
|
18
|
+
|
|
19
|
+
exports.toIntegerOrThrow = toIntegerOrThrow;
|
|
20
|
+
//# sourceMappingURL=out.js.map
|
|
21
|
+
//# sourceMappingURL=_toIntegerOrThrow.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/shared/_toIntegerOrThrow.ts"],"names":[],"mappings":";;;;AAAA,SAAS,uBAAuB;AAEzB,SAAS,iBAAiB,OAAuB;AACvD,QAAM,SAAS,gBAAgB,KAAK;AACpC,MAAI,OAAO,MAAM,MAAM,KAAK,WAAW;AAAG,WAAO;AACjD,MAAI,WAAW,OAAO;AAAmB,UAAM,IAAI,WAAW,+CAA+C;AAC7G,MAAI,WAAW,OAAO;AAAmB,UAAM,IAAI,WAAW,+CAA+C;AAE7G,SAAO,KAAK,MAAM,MAAM;AACzB;AAPgB","sourcesContent":["import { toNumberOrThrow } from './_toNumberOrThrow';\n\nexport function toIntegerOrThrow(value: number): number {\n\tconst number = toNumberOrThrow(value);\n\tif (Number.isNaN(number) || number === 0) return 0;\n\tif (number === Number.POSITIVE_INFINITY) throw new RangeError('+Infinity cannot be represented as an integer');\n\tif (number === Number.NEGATIVE_INFINITY) throw new RangeError('-Infinity cannot be represented as an integer');\n\n\treturn Math.trunc(number);\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
|
|
6
|
+
// src/lib/shared/_toNumberOrThrow.ts
|
|
7
|
+
function toNumberOrThrow(value) {
|
|
8
|
+
switch (typeof value) {
|
|
9
|
+
case "bigint":
|
|
10
|
+
throw new TypeError("Cannot convert a BigInt value to a number");
|
|
11
|
+
case "symbol":
|
|
12
|
+
throw new TypeError("Cannot convert a Symbol value to a number");
|
|
13
|
+
case "boolean":
|
|
14
|
+
return value ? 1 : 0;
|
|
15
|
+
case "number":
|
|
16
|
+
return assertNumber(value, value);
|
|
17
|
+
case "undefined":
|
|
18
|
+
throw new TypeError("Cannot convert an undefined value to a number");
|
|
19
|
+
default:
|
|
20
|
+
return assertNumber(Number(value), value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
__name(toNumberOrThrow, "toNumberOrThrow");
|
|
24
|
+
function assertNumber(value, original) {
|
|
25
|
+
if (Number.isNaN(value)) {
|
|
26
|
+
throw new RangeError(`${original} must be a non-NaN number`);
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
__name(assertNumber, "assertNumber");
|
|
31
|
+
|
|
32
|
+
exports.toNumberOrThrow = toNumberOrThrow;
|
|
33
|
+
//# sourceMappingURL=out.js.map
|
|
34
|
+
//# sourceMappingURL=_toNumberOrThrow.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/shared/_toNumberOrThrow.ts"],"names":[],"mappings":";;;;AAAO,SAAS,gBAAgB,OAAiC;AAChE,UAAQ,OAAO,OAAO;AAAA,IACrB,KAAK;AACJ,YAAM,IAAI,UAAU,2CAA2C;AAAA,IAChE,KAAK;AACJ,YAAM,IAAI,UAAU,2CAA2C;AAAA,IAChE,KAAK;AACJ,aAAO,QAAQ,IAAI;AAAA,IACpB,KAAK;AACJ,aAAO,aAAa,OAAO,KAAK;AAAA,IACjC,KAAK;AACJ,YAAM,IAAI,UAAU,+CAA+C;AAAA,IACpE;AACC,aAAO,aAAa,OAAO,KAAK,GAAG,KAAK;AAAA,EAC1C;AACD;AAfgB;AAmBhB,SAAS,aAAa,OAAe,UAA2B;AAC/D,MAAI,OAAO,MAAM,KAAK,GAAG;AACxB,UAAM,IAAI,WAAW,GAAG,QAAQ,2BAA2B;AAAA,EAC5D;AAEA,SAAO;AACR;AANS","sourcesContent":["export function toNumberOrThrow(value: NumberResolvable): number {\n\tswitch (typeof value) {\n\t\tcase 'bigint':\n\t\t\tthrow new TypeError('Cannot convert a BigInt value to a number');\n\t\tcase 'symbol':\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n\t\tcase 'boolean':\n\t\t\treturn value ? 1 : 0;\n\t\tcase 'number':\n\t\t\treturn assertNumber(value, value);\n\t\tcase 'undefined':\n\t\t\tthrow new TypeError('Cannot convert an undefined value to a number');\n\t\tdefault:\n\t\t\treturn assertNumber(Number(value), value);\n\t}\n}\n\nexport type NumberResolvable = number | boolean | null | { valueOf(): number | boolean | null } | { [Symbol.toPrimitive](): number | boolean | null };\n\nfunction assertNumber(value: number, original: unknown): number {\n\tif (Number.isNaN(value)) {\n\t\tthrow new RangeError(`${original} must be a non-NaN number`);\n\t}\n\n\treturn value;\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare function toNumberOrThrow(value: NumberResolvable): number;
|
|
2
|
+
type NumberResolvable = number | boolean | null | {
|
|
3
|
+
valueOf(): number | boolean | null;
|
|
4
|
+
} | {
|
|
5
|
+
[Symbol.toPrimitive](): number | boolean | null;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export { type NumberResolvable, toNumberOrThrow };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var drop_cjs = require('./drop.cjs');
|
|
4
|
+
var dropLast_cjs = require('./dropLast.cjs');
|
|
5
|
+
var empty_cjs = require('./empty.cjs');
|
|
6
|
+
var _toIntegerOrInfinityOrThrow_cjs = require('./shared/_toIntegerOrInfinityOrThrow.cjs');
|
|
7
|
+
var take_cjs = require('./take.cjs');
|
|
8
|
+
var takeLast_cjs = require('./takeLast.cjs');
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
|
+
function slice(iterable, start, end) {
|
|
13
|
+
start = _toIntegerOrInfinityOrThrow_cjs.toIntegerOrInfinityOrThrow(start ?? 0);
|
|
14
|
+
if (start === Number.NEGATIVE_INFINITY) {
|
|
15
|
+
start = 0;
|
|
16
|
+
}
|
|
17
|
+
if (end === void 0) {
|
|
18
|
+
return start >= 0 ? drop_cjs.drop(iterable, start) : takeLast_cjs.takeLast(iterable, -start);
|
|
19
|
+
}
|
|
20
|
+
end = _toIntegerOrInfinityOrThrow_cjs.toIntegerOrInfinityOrThrow(end);
|
|
21
|
+
if (end < 0) {
|
|
22
|
+
if (end === Number.NEGATIVE_INFINITY) {
|
|
23
|
+
return empty_cjs.empty();
|
|
24
|
+
}
|
|
25
|
+
if (start === 0) {
|
|
26
|
+
return dropLast_cjs.dropLast(iterable, -end);
|
|
27
|
+
}
|
|
28
|
+
if (start >= 0) {
|
|
29
|
+
return dropLast_cjs.dropLast(drop_cjs.drop(iterable, start), -end);
|
|
30
|
+
}
|
|
31
|
+
if (start >= end) {
|
|
32
|
+
return empty_cjs.empty();
|
|
33
|
+
}
|
|
34
|
+
return take_cjs.take(takeLast_cjs.takeLast(iterable, -start), end - start);
|
|
35
|
+
}
|
|
36
|
+
if (start >= end)
|
|
37
|
+
return empty_cjs.empty();
|
|
38
|
+
return end === Number.POSITIVE_INFINITY ? drop_cjs.drop(iterable, start) : take_cjs.take(drop_cjs.drop(iterable, start), end - start);
|
|
39
|
+
}
|
|
40
|
+
__name(slice, "slice");
|
|
41
|
+
|
|
42
|
+
exports.slice = slice;
|
|
43
|
+
//# sourceMappingURL=out.js.map
|
|
44
|
+
//# sourceMappingURL=slice.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/slice.ts"],"names":[],"mappings":";;;;AAAA,SAAS,YAAY;AACrB,SAAS,gBAAgB;AACzB,SAAS,aAAa;AAEtB,SAAS,kCAAkC;AAC3C,SAAS,YAAY;AACrB,SAAS,gBAAgB;AA2DlB,SAAS,MAAyB,UAA2C,OAAgB,KAA6C;AAEhJ,UAAQ,2BAA2B,SAAS,CAAC;AAC7C,MAAI,UAAU,OAAO,mBAAmB;AACvC,YAAQ;AAAA,EACT;AAIA,MAAI,QAAQ,QAAW;AACtB,WAAO,SAAS,IACb,KAAK,UAAU,KAAK,IACpB,SAAS,UAAU,CAAC,KAAK;AAAA,EAC7B;AAEA,QAAM,2BAA2B,GAAG;AAEpC,MAAI,MAAM,GAAG;AAGZ,QAAI,QAAQ,OAAO,mBAAmB;AACrC,aAAO,MAAM;AAAA,IACd;AAGA,QAAI,UAAU,GAAG;AAChB,aAAO,SAAS,UAAU,CAAC,GAAG;AAAA,IAC/B;AAIA,QAAI,SAAS,GAAG;AACf,aAAO,SAAS,KAAK,UAAU,KAAK,GAAG,CAAC,GAAG;AAAA,IAC5C;AAIA,QAAI,SAAS,KAAK;AACjB,aAAO,MAAM;AAAA,IACd;AAIA,WAAO,KAAK,SAAS,UAAU,CAAC,KAAK,GAAG,MAAM,KAAK;AAAA,EACpD;AAGA,MAAI,SAAS;AAAK,WAAO,MAAM;AAG/B,SAAO,QAAQ,OAAO,oBACnB,KAAK,UAAU,KAAK,IACpB,KAAK,KAAK,UAAU,KAAK,GAAG,MAAM,KAAK;AAC3C;AArDgB","sourcesContent":["import { drop } from './drop';\nimport { dropLast } from './dropLast';\nimport { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { take } from './take';\nimport { takeLast } from './takeLast';\n\n/**\n * Produces an iterable with the elements from the `start` index to the `end` index (exclusive).\n *\n * @param iterable The iterator to slice.\n * @param start The index at which to begin extraction.\n * @param end The index at which to end extraction.\n * @returns An iterator that contains the elements of the provided iterator from `start` to `end`.\n *\n * @example\n * ```typescript\n * import { slice } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(, 1, 3)]);\n * // Output: [2, 3]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, -2)]);\n * // Output: [4, 5]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2)]);\n * // Output: [3, 4, 5]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2, -1)]);\n * // Output: [3, 4]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, -2, -1)]);\n * // Output: [4]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...slice(iterable, 2, 1)]);\n * // Output: []\n * ```\n *\n * @remarks\n *\n * This function consumes the input iterator based on the `start` and `end` values, therefore, you should not use the\n * original iterator after calling this function.\n */\nexport function slice<const ElementType>(iterable: IterableResolvable<ElementType>, start?: number, end?: number): IterableIterator<ElementType> {\n\t// https://tc39.es/ecma262/#sec-array.prototype.slice\n\tstart = toIntegerOrInfinityOrThrow(start ?? 0);\n\tif (start === Number.NEGATIVE_INFINITY) {\n\t\tstart = 0;\n\t}\n\n\t// 1. If end is not provided, `slice` behaves like `drop` or `takeLast`,\n\t// depending on the sign of `start`:\n\tif (end === undefined) {\n\t\treturn start >= 0 //\n\t\t\t? drop(iterable, start)\n\t\t\t: takeLast(iterable, -start);\n\t}\n\n\tend = toIntegerOrInfinityOrThrow(end);\n\t// 2. If end is negative:\n\tif (end < 0) {\n\t\t// 2.1. If `end` is `-Infinity`, end would be `0`, which will always\n\t\t// result on an empty iterator:\n\t\tif (end === Number.NEGATIVE_INFINITY) {\n\t\t\treturn empty();\n\t\t}\n\n\t\t// 2.2. If start is positive, drop the last n elements:\n\t\tif (start === 0) {\n\t\t\treturn dropLast(iterable, -end);\n\t\t}\n\n\t\t// 2.3. If the start is positive, drop the first n elements and take the\n\t\t// last m elements:\n\t\tif (start >= 0) {\n\t\t\treturn dropLast(drop(iterable, start), -end);\n\t\t}\n\n\t\t// 2.4. If the start is the same or greater than the end, return an\n\t\t// empty iterator:\n\t\tif (start >= end) {\n\t\t\treturn empty();\n\t\t}\n\n\t\t// 2.5. `start` and `end` are negative, take the elements between the\n\t\t// start and end:\n\t\treturn take(takeLast(iterable, -start), end - start);\n\t}\n\n\t// 3.0. If `start` is greater than or equal to `end`, return an empty iterator:\n\tif (start >= end) return empty();\n\n\t// 4.0. Otherwise, take the elements between `start` and `end`:\n\treturn end === Number.POSITIVE_INFINITY //\n\t\t? drop(iterable, start)\n\t\t: take(drop(iterable, start), end - start);\n}\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Produces an iterable with the elements from the `start` index to the `end` index (exclusive).
|
|
5
|
+
*
|
|
6
|
+
* @param iterable The iterator to slice.
|
|
7
|
+
* @param start The index at which to begin extraction.
|
|
8
|
+
* @param end The index at which to end extraction.
|
|
9
|
+
* @returns An iterator that contains the elements of the provided iterator from `start` to `end`.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { slice } from '@sapphire/iterator-utilities';
|
|
14
|
+
*
|
|
15
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
16
|
+
* console.log([...slice(, 1, 3)]);
|
|
17
|
+
* // Output: [2, 3]
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
23
|
+
* console.log([...slice(iterable, -2)]);
|
|
24
|
+
* // Output: [4, 5]
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
30
|
+
* console.log([...slice(iterable, 2)]);
|
|
31
|
+
* // Output: [3, 4, 5]
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
37
|
+
* console.log([...slice(iterable, 2, -1)]);
|
|
38
|
+
* // Output: [3, 4]
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
44
|
+
* console.log([...slice(iterable, -2, -1)]);
|
|
45
|
+
* // Output: [4]
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
51
|
+
* console.log([...slice(iterable, 2, 1)]);
|
|
52
|
+
* // Output: []
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @remarks
|
|
56
|
+
*
|
|
57
|
+
* This function consumes the input iterator based on the `start` and `end` values, therefore, you should not use the
|
|
58
|
+
* original iterator after calling this function.
|
|
59
|
+
*/
|
|
60
|
+
declare function slice<const ElementType>(iterable: IterableResolvable<ElementType>, start?: number, end?: number): IterableIterator<ElementType>;
|
|
61
|
+
|
|
62
|
+
export { slice };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _assertFunction_cjs = require('./shared/_assertFunction.cjs');
|
|
4
|
+
var toIterableIterator_cjs = require('./toIterableIterator.cjs');
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
function some(iterable, callbackFn) {
|
|
9
|
+
callbackFn = _assertFunction_cjs.assertFunction(callbackFn);
|
|
10
|
+
let index = 0;
|
|
11
|
+
for (const value of toIterableIterator_cjs.toIterableIterator(iterable)) {
|
|
12
|
+
if (callbackFn(value, index++)) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
__name(some, "some");
|
|
19
|
+
|
|
20
|
+
exports.some = some;
|
|
21
|
+
//# sourceMappingURL=out.js.map
|
|
22
|
+
//# sourceMappingURL=some.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/some.ts"],"names":[],"mappings":";;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA8B5B,SAAS,KACf,UACA,YACU;AACV,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,WAAW,OAAO,OAAO,GAAG;AAC/B,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAdgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds a matching element, returning `true` if it's found and `false` otherwise.\n *\n * @param iterable An iterator to search for a value in.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to\n * indicate the element passes the test, and a falsy value otherwise.\n * @returns `true` if the callback function returns a truthy value for at least one element. Otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { some } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(some(iterable, (value) => value % 2 === 0));\n * // Output: true\n * ```\n *\n * @example\n * ```typescript\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(some(iterable, (value) => value % 6 === 0));\n * // Output: false\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function some<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): boolean {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tif (callbackFn(value, index++)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Advances the iterable until it finds a matching element, returning `true` if it's found and `false` otherwise.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable An iterator to search for a value in.
|
|
7
|
+
* @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to
|
|
8
|
+
* indicate the element passes the test, and a falsy value otherwise.
|
|
9
|
+
* @returns `true` if the callback function returns a truthy value for at least one element. Otherwise, `false`.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { some } from '@sapphire/iterator-utilities';
|
|
14
|
+
*
|
|
15
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
16
|
+
* console.log(some(iterable, (value) => value % 2 === 0));
|
|
17
|
+
* // Output: true
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const iterable = [1, 2, 3, 4, 5];
|
|
23
|
+
* console.log(some(iterable, (value) => value % 6 === 0));
|
|
24
|
+
* // Output: false
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
*
|
|
29
|
+
* This function consumes the iterator until the value is found or the iterator is exhausted.
|
|
30
|
+
*/
|
|
31
|
+
declare function some<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean): boolean;
|
|
32
|
+
|
|
33
|
+
export { some };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var toArray_cjs = require('./toArray.cjs');
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
function sorted(iterable, compareFn) {
|
|
8
|
+
return toArray_cjs.toArray(iterable).sort(compareFn).values();
|
|
9
|
+
}
|
|
10
|
+
__name(sorted, "sorted");
|
|
11
|
+
|
|
12
|
+
exports.sorted = sorted;
|
|
13
|
+
//# sourceMappingURL=out.js.map
|
|
14
|
+
//# sourceMappingURL=sorted.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/sorted.ts"],"names":[],"mappings":";;;;AACA,SAAS,eAAe;AAsBjB,SAAS,OACf,UACA,WACgC;AAChC,SAAO,QAAQ,QAAQ,EAAE,KAAK,SAAS,EAAE,OAAO;AACjD;AALgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toArray } from './toArray';\n\n/**\n * Consumes the iterable and returns a new iterable with the elements sorted.\n *\n * @param iterable An iterator to sort.\n * @param compareFn A function that defines the sort order. If omitted, the values are sorted in ascending order.\n * @returns An iterator that yields the values of the provided iterator in sorted order.\n *\n * @example\n * ```typescript\n * import { sorted } from '@sapphire/iterator-utilities';\n *\n * const iterable = [5, 3, 1, 4, 2];\n * console.log([...sorted(iterable)]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire input iterator.\n */\nexport function sorted<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcompareFn?: (a: ElementType, b: ElementType) => number\n): IterableIterator<ElementType> {\n\treturn toArray(iterable).sort(compareFn).values();\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Consumes the iterable and returns a new iterable with the elements sorted.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable An iterator to sort.
|
|
7
|
+
* @param compareFn A function that defines the sort order. If omitted, the values are sorted in ascending order.
|
|
8
|
+
* @returns An iterator that yields the values of the provided iterator in sorted order.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { sorted } from '@sapphire/iterator-utilities';
|
|
13
|
+
*
|
|
14
|
+
* const iterable = [5, 3, 1, 4, 2];
|
|
15
|
+
* console.log([...sorted(iterable)]);
|
|
16
|
+
* // Output: [1, 2, 3, 4, 5]
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
*
|
|
21
|
+
* This function consumes the entire input iterator.
|
|
22
|
+
*/
|
|
23
|
+
declare function sorted<const ElementType>(iterable: IterableResolvable<ElementType>, compareFn?: (a: ElementType, b: ElementType) => number): IterableIterator<ElementType>;
|
|
24
|
+
|
|
25
|
+
export { sorted };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./from.cjs');
|
|
4
|
+
var _assertFunction_cjs = require('./shared/_assertFunction.cjs');
|
|
5
|
+
var toIterableIterator_cjs = require('./toIterableIterator.cjs');
|
|
6
|
+
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
function* starMap(iterable, callbackFn) {
|
|
10
|
+
callbackFn = _assertFunction_cjs.assertFunction(callbackFn);
|
|
11
|
+
for (const value of toIterableIterator_cjs.toIterableIterator(iterable)) {
|
|
12
|
+
yield callbackFn(...toIterableIterator_cjs.toIterableIterator(value));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
__name(starMap, "starMap");
|
|
16
|
+
|
|
17
|
+
exports.starMap = starMap;
|
|
18
|
+
//# sourceMappingURL=out.js.map
|
|
19
|
+
//# sourceMappingURL=starMap.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/starMap.ts"],"names":[],"mappings":";;;;AAAA,OAAwC;AACxC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAwB5B,UAAU,QAChB,UACA,YAC+B;AAC/B,eAAa,eAAe,UAAU;AAEtC,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,UAAM,WAAW,GAAI,mBAAmB,KAAK,CAAS;AAAA,EACvD;AACD;AATiB","sourcesContent":["import { type IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the results of calling a provided function on each element of the input iterables as the function's parameters.\n *\n * @param iterable The iterable to map over.\n * @param callbackFn The callback function to apply to each element.\n * @returns An iterable iterator that yields the mapped elements.\n *\n * @example\n * ```typescript\n * import { starMap } from '@sapphire/iterator-utilities';\n *\n * const iterable = [[1, 2], [3, 4], [5, 6]];\n * console.log([...starMap(iterable, (a, b) => a + b)]);\n * // Output: [3, 7, 11]\n * ```\n *\n * @remarks\n *\n * While very similar to {@link map}, `starMap` takes an iterable of iterables (which can be an array of tuples) and\n * calls the function with each inner iterable's values as the function's parameters. {@link map} calls the function\n * with the value and the index by comparison.\n */\nexport function* starMap<const ElementType extends IterableResolvable<any>, const MappedType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (...args: StarMapParameters<ElementType>) => MappedType\n): IterableIterator<MappedType> {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tyield callbackFn(...(toIterableIterator(value) as any));\n\t}\n}\n\nexport type StarMapParameters<ElementType> = ElementType extends readonly [...infer ElementTypeEntry]\n\t? ElementTypeEntry\n\t: ElementType extends IterableResolvable<infer ElementType>\n\t\t? ElementType[]\n\t\t: never;\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an iterable with the results of calling a provided function on each element of the input iterables as the function's parameters.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable The iterable to map over.
|
|
7
|
+
* @param callbackFn The callback function to apply to each element.
|
|
8
|
+
* @returns An iterable iterator that yields the mapped elements.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { starMap } from '@sapphire/iterator-utilities';
|
|
13
|
+
*
|
|
14
|
+
* const iterable = [[1, 2], [3, 4], [5, 6]];
|
|
15
|
+
* console.log([...starMap(iterable, (a, b) => a + b)]);
|
|
16
|
+
* // Output: [3, 7, 11]
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
*
|
|
21
|
+
* While very similar to {@link map}, `starMap` takes an iterable of iterables (which can be an array of tuples) and
|
|
22
|
+
* calls the function with each inner iterable's values as the function's parameters. {@link map} calls the function
|
|
23
|
+
* with the value and the index by comparison.
|
|
24
|
+
*/
|
|
25
|
+
declare function starMap<const ElementType extends IterableResolvable<any>, const MappedType>(iterable: IterableResolvable<ElementType>, callbackFn: (...args: StarMapParameters<ElementType>) => MappedType): IterableIterator<MappedType>;
|
|
26
|
+
type StarMapParameters<ElementType> = ElementType extends readonly [...infer ElementTypeEntry] ? ElementTypeEntry : ElementType extends IterableResolvable<infer ElementType> ? ElementType[] : never;
|
|
27
|
+
|
|
28
|
+
export { type StarMapParameters, starMap };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var map_cjs = require('./map.cjs');
|
|
4
|
+
var _toNumberOrThrow_cjs = require('./shared/_toNumberOrThrow.cjs');
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
function sum(iterable) {
|
|
9
|
+
let sum2 = 0;
|
|
10
|
+
for (const value of map_cjs.map(iterable, _toNumberOrThrow_cjs.toNumberOrThrow)) {
|
|
11
|
+
sum2 += value;
|
|
12
|
+
}
|
|
13
|
+
return sum2;
|
|
14
|
+
}
|
|
15
|
+
__name(sum, "sum");
|
|
16
|
+
|
|
17
|
+
exports.sum = sum;
|
|
18
|
+
//# sourceMappingURL=out.js.map
|
|
19
|
+
//# sourceMappingURL=sum.cjs.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,25 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
import { NumberResolvable } from './shared/_toNumberOrThrow.js';
|
|
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,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var empty_cjs = require('./empty.cjs');
|
|
4
|
+
var from_cjs = require('./from.cjs');
|
|
5
|
+
var _assertNotNegative_cjs = require('./shared/_assertNotNegative.cjs');
|
|
6
|
+
var _makeIterableIterator_cjs = require('./shared/_makeIterableIterator.cjs');
|
|
7
|
+
var _toIntegerOrInfinityOrThrow_cjs = require('./shared/_toIntegerOrInfinityOrThrow.cjs');
|
|
8
|
+
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
11
|
+
function take(iterable, count) {
|
|
12
|
+
count = _assertNotNegative_cjs.assertNotNegative(_toIntegerOrInfinityOrThrow_cjs.toIntegerOrInfinityOrThrow(count), count);
|
|
13
|
+
if (count === 0)
|
|
14
|
+
return empty_cjs.empty();
|
|
15
|
+
let i = 0;
|
|
16
|
+
const resolvedIterable = from_cjs.from(iterable);
|
|
17
|
+
return _makeIterableIterator_cjs.makeIterableIterator(
|
|
18
|
+
() => i >= count ? { done: true, value: void 0 } : (i++, resolvedIterable.next())
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
__name(take, "take");
|
|
22
|
+
|
|
23
|
+
exports.take = take;
|
|
24
|
+
//# sourceMappingURL=out.js.map
|
|
25
|
+
//# sourceMappingURL=take.cjs.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"]}
|