@sapphire/iterator-utilities 1.0.3-next.fc35dd86 → 2.0.0-next.09afdaab
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/dist/cjs/index.cjs +217 -0
- package/dist/cjs/index.d.cts +32 -9
- package/dist/cjs/lib/all.cjs +12 -0
- package/dist/cjs/lib/all.cjs.map +1 -0
- package/dist/cjs/lib/all.d.cts +2 -0
- package/dist/cjs/lib/any.cjs +12 -0
- package/dist/cjs/lib/any.cjs.map +1 -0
- package/dist/cjs/lib/any.d.cts +2 -0
- package/dist/cjs/lib/append.cjs.map +1 -1
- package/dist/cjs/lib/at.cjs.map +1 -1
- package/dist/cjs/lib/average.cjs.map +1 -1
- package/dist/cjs/lib/chain.cjs.map +1 -1
- package/dist/cjs/lib/chunk.cjs.map +1 -1
- package/dist/cjs/lib/collect.cjs +12 -0
- package/dist/cjs/lib/collect.cjs.map +1 -0
- package/dist/cjs/lib/collect.d.cts +2 -0
- package/dist/cjs/lib/collectInto.cjs +17 -0
- package/dist/cjs/lib/collectInto.cjs.map +1 -0
- package/dist/cjs/lib/collectInto.d.cts +29 -0
- package/dist/cjs/lib/compact.cjs.map +1 -1
- package/dist/cjs/lib/compare.cjs +15 -0
- package/dist/cjs/lib/compare.cjs.map +1 -0
- package/dist/cjs/lib/compare.d.cts +32 -0
- package/dist/cjs/lib/compareBy.cjs +26 -0
- package/dist/cjs/lib/compareBy.cjs.map +1 -0
- package/dist/cjs/lib/compareBy.d.cts +31 -0
- package/dist/cjs/lib/compress.cjs.map +1 -1
- package/dist/cjs/lib/contains.cjs.map +1 -1
- package/dist/cjs/lib/count.cjs.map +1 -1
- package/dist/cjs/lib/cycle.cjs.map +1 -1
- package/dist/cjs/lib/difference.cjs.map +1 -1
- package/dist/cjs/lib/drop.cjs +0 -1
- package/dist/cjs/lib/drop.cjs.map +1 -1
- package/dist/cjs/lib/drop.d.cts +1 -1
- package/dist/cjs/lib/dropLast.cjs +0 -1
- package/dist/cjs/lib/dropLast.cjs.map +1 -1
- package/dist/cjs/lib/dropLast.d.cts +1 -1
- package/dist/cjs/lib/dropWhile.cjs +0 -1
- package/dist/cjs/lib/dropWhile.cjs.map +1 -1
- package/dist/cjs/lib/dropWhile.d.cts +1 -1
- package/dist/cjs/lib/empty.cjs.map +1 -1
- package/dist/cjs/lib/enumerate.cjs.map +1 -1
- package/dist/cjs/lib/equal.cjs +15 -0
- package/dist/cjs/lib/equal.cjs.map +1 -0
- package/dist/cjs/lib/equal.d.cts +26 -0
- package/dist/cjs/lib/equalBy.cjs +23 -0
- package/dist/cjs/lib/equalBy.cjs.map +1 -0
- package/dist/cjs/lib/equalBy.d.cts +27 -0
- package/dist/cjs/lib/every.cjs.map +1 -1
- package/dist/cjs/lib/filter.cjs +0 -1
- package/dist/cjs/lib/filter.cjs.map +1 -1
- package/dist/cjs/lib/filter.d.cts +1 -1
- package/dist/cjs/lib/find.cjs.map +1 -1
- package/dist/cjs/lib/findIndex.cjs.map +1 -1
- package/dist/cjs/lib/first.cjs.map +1 -1
- package/dist/cjs/lib/flat.cjs.map +1 -1
- package/dist/cjs/lib/flatMap.cjs.map +1 -1
- package/dist/cjs/lib/forEach.cjs.map +1 -1
- package/dist/cjs/lib/from.cjs.map +1 -1
- package/dist/cjs/lib/fuse.cjs +26 -0
- package/dist/cjs/lib/fuse.cjs.map +1 -0
- package/dist/cjs/lib/fuse.d.cts +47 -0
- package/dist/cjs/lib/greaterOrEqualThan.cjs +17 -0
- package/dist/cjs/lib/greaterOrEqualThan.cjs.map +1 -0
- package/dist/cjs/lib/greaterOrEqualThan.d.cts +32 -0
- package/dist/cjs/lib/greaterThan.cjs +17 -0
- package/dist/cjs/lib/greaterThan.cjs.map +1 -0
- package/dist/cjs/lib/greaterThan.d.cts +32 -0
- package/dist/cjs/lib/indexOf.cjs +0 -1
- package/dist/cjs/lib/indexOf.cjs.map +1 -1
- package/dist/cjs/lib/indexOf.d.cts +1 -1
- package/dist/cjs/lib/inspect.cjs +25 -0
- package/dist/cjs/lib/inspect.cjs.map +1 -0
- package/dist/cjs/lib/inspect.d.cts +39 -0
- package/dist/cjs/lib/intersect.cjs.map +1 -1
- package/dist/cjs/lib/intersperse.cjs +35 -0
- package/dist/cjs/lib/intersperse.cjs.map +1 -0
- package/dist/cjs/lib/intersperse.d.cts +30 -0
- package/dist/cjs/lib/isEmpty.cjs.map +1 -1
- package/dist/cjs/lib/isSorted.cjs +15 -0
- package/dist/cjs/lib/isSorted.cjs.map +1 -0
- package/dist/cjs/lib/isSorted.d.cts +35 -0
- package/dist/cjs/lib/isSortedBy.cjs +26 -0
- package/dist/cjs/lib/isSortedBy.cjs.map +1 -0
- package/dist/cjs/lib/isSortedBy.d.cts +32 -0
- package/dist/cjs/lib/isSortedByKey.cjs +29 -0
- package/dist/cjs/lib/isSortedByKey.cjs.map +1 -0
- package/dist/cjs/lib/isSortedByKey.d.cts +30 -0
- package/dist/cjs/lib/last.cjs.map +1 -1
- package/dist/cjs/lib/lessOrEqualThan.cjs +17 -0
- package/dist/cjs/lib/lessOrEqualThan.cjs.map +1 -0
- package/dist/cjs/lib/lessOrEqualThan.d.cts +32 -0
- package/dist/cjs/lib/lessThan.cjs +17 -0
- package/dist/cjs/lib/lessThan.cjs.map +1 -0
- package/dist/cjs/lib/lessThan.d.cts +32 -0
- package/dist/cjs/lib/map.cjs.map +1 -1
- package/dist/cjs/lib/max.cjs +3 -7
- package/dist/cjs/lib/max.cjs.map +1 -1
- package/dist/cjs/lib/max.d.cts +8 -3
- package/dist/cjs/lib/maxBy.cjs +27 -0
- package/dist/cjs/lib/maxBy.cjs.map +1 -0
- package/dist/cjs/lib/maxBy.d.cts +31 -0
- package/dist/cjs/lib/maxByKey.cjs +32 -0
- package/dist/cjs/lib/maxByKey.cjs.map +1 -0
- package/dist/cjs/lib/maxByKey.d.cts +32 -0
- package/dist/cjs/lib/min.cjs +3 -7
- package/dist/cjs/lib/min.cjs.map +1 -1
- package/dist/cjs/lib/min.d.cts +8 -3
- package/dist/cjs/lib/minBy.cjs +27 -0
- package/dist/cjs/lib/minBy.cjs.map +1 -0
- package/dist/cjs/lib/minBy.d.cts +31 -0
- package/dist/cjs/lib/minByKey.cjs +32 -0
- package/dist/cjs/lib/minByKey.cjs.map +1 -0
- package/dist/cjs/lib/minByKey.d.cts +31 -0
- package/dist/cjs/lib/notEqual.cjs +15 -0
- package/dist/cjs/lib/notEqual.cjs.map +1 -0
- package/dist/cjs/lib/notEqual.d.cts +26 -0
- package/dist/cjs/lib/nth.cjs +12 -0
- package/dist/cjs/lib/nth.cjs.map +1 -0
- package/dist/cjs/lib/nth.d.cts +2 -0
- package/dist/cjs/lib/partition.cjs.map +1 -1
- package/dist/cjs/lib/peekable.cjs.map +1 -1
- package/dist/cjs/lib/position.cjs +12 -0
- package/dist/cjs/lib/position.cjs.map +1 -0
- package/dist/cjs/lib/position.d.cts +2 -0
- package/dist/cjs/lib/prepend.cjs.map +1 -1
- package/dist/cjs/lib/product.cjs.map +1 -1
- package/dist/cjs/lib/range.cjs.map +1 -1
- package/dist/cjs/lib/reduce.cjs.map +1 -1
- package/dist/cjs/lib/repeat.cjs.map +1 -1
- package/dist/cjs/lib/reverse.cjs +2 -5
- package/dist/cjs/lib/reverse.cjs.map +1 -1
- package/dist/cjs/lib/shared/_assertFunction.cjs.map +1 -1
- package/dist/cjs/lib/shared/_assertNotNegative.cjs.map +1 -1
- package/dist/cjs/lib/shared/_assertPositive.cjs.map +1 -1
- package/dist/cjs/lib/shared/_compare.cjs +36 -0
- package/dist/cjs/lib/shared/_compare.cjs.map +1 -0
- package/dist/cjs/lib/shared/_compare.d.cts +20 -0
- package/dist/cjs/lib/shared/_makeIterableIterator.cjs.map +1 -1
- package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs.map +1 -1
- package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs.map +1 -1
- package/dist/cjs/lib/shared/_toNumberOrThrow.cjs.map +1 -1
- package/dist/cjs/lib/shared/comparators.cjs +28 -0
- package/dist/cjs/lib/shared/comparators.cjs.map +1 -0
- package/dist/cjs/lib/shared/comparators.d.cts +34 -0
- package/dist/cjs/lib/skip.cjs +12 -0
- package/dist/cjs/lib/skip.cjs.map +1 -0
- package/dist/cjs/lib/skip.d.cts +2 -0
- package/dist/cjs/lib/skipLast.cjs +12 -0
- package/dist/cjs/lib/skipLast.cjs.map +1 -0
- package/dist/cjs/lib/skipLast.d.cts +2 -0
- package/dist/cjs/lib/skipWhile.cjs +12 -0
- package/dist/cjs/lib/skipWhile.cjs.map +1 -0
- package/dist/cjs/lib/skipWhile.d.cts +2 -0
- package/dist/cjs/lib/slice.cjs.map +1 -1
- package/dist/cjs/lib/some.cjs.map +1 -1
- package/dist/cjs/lib/sorted.cjs.map +1 -1
- package/dist/cjs/lib/starMap.cjs.map +1 -1
- package/dist/cjs/lib/stepBy.cjs +29 -0
- package/dist/cjs/lib/stepBy.cjs.map +1 -0
- package/dist/cjs/lib/stepBy.d.cts +24 -0
- package/dist/cjs/lib/sum.cjs.map +1 -1
- package/dist/cjs/lib/take.cjs.map +1 -1
- package/dist/cjs/lib/takeLast.cjs.map +1 -1
- package/dist/cjs/lib/takeWhile.cjs +12 -0
- package/dist/cjs/lib/takeWhile.cjs.map +1 -0
- package/dist/cjs/lib/takeWhile.d.cts +2 -0
- package/dist/cjs/lib/tee.cjs.map +1 -1
- package/dist/cjs/lib/toArray.cjs.map +1 -1
- package/dist/cjs/lib/toIterableIterator.cjs.map +1 -1
- package/dist/cjs/lib/union.cjs.map +1 -1
- package/dist/cjs/lib/unique.cjs.map +1 -1
- package/dist/cjs/lib/unzip.cjs.map +1 -1
- package/dist/cjs/lib/zip.cjs.map +1 -1
- package/dist/esm/index.d.mts +32 -9
- package/dist/esm/index.mjs +31 -0
- package/dist/esm/lib/all.d.mts +2 -0
- package/dist/esm/lib/all.mjs +4 -0
- package/dist/esm/lib/all.mjs.map +1 -0
- package/dist/esm/lib/any.d.mts +2 -0
- package/dist/esm/lib/any.mjs +4 -0
- package/dist/esm/lib/any.mjs.map +1 -0
- package/dist/esm/lib/append.mjs.map +1 -1
- package/dist/esm/lib/at.mjs.map +1 -1
- package/dist/esm/lib/average.mjs.map +1 -1
- package/dist/esm/lib/chain.mjs.map +1 -1
- package/dist/esm/lib/chunk.mjs.map +1 -1
- package/dist/esm/lib/collect.d.mts +2 -0
- package/dist/esm/lib/collect.mjs +4 -0
- package/dist/esm/lib/collect.mjs.map +1 -0
- package/dist/esm/lib/collectInto.d.mts +29 -0
- package/dist/esm/lib/collectInto.mjs +14 -0
- package/dist/esm/lib/collectInto.mjs.map +1 -0
- package/dist/esm/lib/compact.mjs.map +1 -1
- package/dist/esm/lib/compare.d.mts +32 -0
- package/dist/esm/lib/compare.mjs +12 -0
- package/dist/esm/lib/compare.mjs.map +1 -0
- package/dist/esm/lib/compareBy.d.mts +31 -0
- package/dist/esm/lib/compareBy.mjs +23 -0
- package/dist/esm/lib/compareBy.mjs.map +1 -0
- package/dist/esm/lib/compress.mjs.map +1 -1
- package/dist/esm/lib/contains.mjs.map +1 -1
- package/dist/esm/lib/count.mjs.map +1 -1
- package/dist/esm/lib/cycle.mjs.map +1 -1
- package/dist/esm/lib/difference.mjs.map +1 -1
- package/dist/esm/lib/drop.d.mts +1 -1
- package/dist/esm/lib/drop.mjs +1 -1
- package/dist/esm/lib/drop.mjs.map +1 -1
- package/dist/esm/lib/dropLast.d.mts +1 -1
- package/dist/esm/lib/dropLast.mjs +1 -1
- package/dist/esm/lib/dropLast.mjs.map +1 -1
- package/dist/esm/lib/dropWhile.d.mts +1 -1
- package/dist/esm/lib/dropWhile.mjs +1 -1
- package/dist/esm/lib/dropWhile.mjs.map +1 -1
- package/dist/esm/lib/empty.mjs.map +1 -1
- package/dist/esm/lib/enumerate.mjs.map +1 -1
- package/dist/esm/lib/equal.d.mts +26 -0
- package/dist/esm/lib/equal.mjs +11 -0
- package/dist/esm/lib/equal.mjs.map +1 -0
- package/dist/esm/lib/equalBy.d.mts +27 -0
- package/dist/esm/lib/equalBy.mjs +19 -0
- package/dist/esm/lib/equalBy.mjs.map +1 -0
- package/dist/esm/lib/every.mjs.map +1 -1
- package/dist/esm/lib/filter.d.mts +1 -1
- package/dist/esm/lib/filter.mjs +1 -1
- package/dist/esm/lib/filter.mjs.map +1 -1
- package/dist/esm/lib/find.mjs.map +1 -1
- package/dist/esm/lib/findIndex.mjs.map +1 -1
- package/dist/esm/lib/first.mjs.map +1 -1
- package/dist/esm/lib/flat.mjs.map +1 -1
- package/dist/esm/lib/flatMap.mjs.map +1 -1
- package/dist/esm/lib/forEach.mjs.map +1 -1
- package/dist/esm/lib/from.mjs.map +1 -1
- package/dist/esm/lib/fuse.d.mts +47 -0
- package/dist/esm/lib/fuse.mjs +23 -0
- package/dist/esm/lib/fuse.mjs.map +1 -0
- package/dist/esm/lib/greaterOrEqualThan.d.mts +32 -0
- package/dist/esm/lib/greaterOrEqualThan.mjs +13 -0
- package/dist/esm/lib/greaterOrEqualThan.mjs.map +1 -0
- package/dist/esm/lib/greaterThan.d.mts +32 -0
- package/dist/esm/lib/greaterThan.mjs +13 -0
- package/dist/esm/lib/greaterThan.mjs.map +1 -0
- package/dist/esm/lib/indexOf.d.mts +1 -1
- package/dist/esm/lib/indexOf.mjs +1 -1
- package/dist/esm/lib/indexOf.mjs.map +1 -1
- package/dist/esm/lib/inspect.d.mts +39 -0
- package/dist/esm/lib/inspect.mjs +22 -0
- package/dist/esm/lib/inspect.mjs.map +1 -0
- package/dist/esm/lib/intersect.mjs.map +1 -1
- package/dist/esm/lib/intersperse.d.mts +30 -0
- package/dist/esm/lib/intersperse.mjs +32 -0
- package/dist/esm/lib/intersperse.mjs.map +1 -0
- package/dist/esm/lib/isEmpty.mjs.map +1 -1
- package/dist/esm/lib/isSorted.d.mts +35 -0
- package/dist/esm/lib/isSorted.mjs +12 -0
- package/dist/esm/lib/isSorted.mjs.map +1 -0
- package/dist/esm/lib/isSortedBy.d.mts +32 -0
- package/dist/esm/lib/isSortedBy.mjs +23 -0
- package/dist/esm/lib/isSortedBy.mjs.map +1 -0
- package/dist/esm/lib/isSortedByKey.d.mts +30 -0
- package/dist/esm/lib/isSortedByKey.mjs +26 -0
- package/dist/esm/lib/isSortedByKey.mjs.map +1 -0
- package/dist/esm/lib/last.mjs.map +1 -1
- package/dist/esm/lib/lessOrEqualThan.d.mts +32 -0
- package/dist/esm/lib/lessOrEqualThan.mjs +13 -0
- package/dist/esm/lib/lessOrEqualThan.mjs.map +1 -0
- package/dist/esm/lib/lessThan.d.mts +32 -0
- package/dist/esm/lib/lessThan.mjs +13 -0
- package/dist/esm/lib/lessThan.mjs.map +1 -0
- package/dist/esm/lib/map.mjs.map +1 -1
- package/dist/esm/lib/max.d.mts +8 -3
- package/dist/esm/lib/max.mjs +3 -7
- package/dist/esm/lib/max.mjs.map +1 -1
- package/dist/esm/lib/maxBy.d.mts +31 -0
- package/dist/esm/lib/maxBy.mjs +24 -0
- package/dist/esm/lib/maxBy.mjs.map +1 -0
- package/dist/esm/lib/maxByKey.d.mts +32 -0
- package/dist/esm/lib/maxByKey.mjs +29 -0
- package/dist/esm/lib/maxByKey.mjs.map +1 -0
- package/dist/esm/lib/min.d.mts +8 -3
- package/dist/esm/lib/min.mjs +3 -7
- package/dist/esm/lib/min.mjs.map +1 -1
- package/dist/esm/lib/minBy.d.mts +31 -0
- package/dist/esm/lib/minBy.mjs +24 -0
- package/dist/esm/lib/minBy.mjs.map +1 -0
- package/dist/esm/lib/minByKey.d.mts +31 -0
- package/dist/esm/lib/minByKey.mjs +29 -0
- package/dist/esm/lib/minByKey.mjs.map +1 -0
- package/dist/esm/lib/notEqual.d.mts +26 -0
- package/dist/esm/lib/notEqual.mjs +11 -0
- package/dist/esm/lib/notEqual.mjs.map +1 -0
- package/dist/esm/lib/nth.d.mts +2 -0
- package/dist/esm/lib/nth.mjs +4 -0
- package/dist/esm/lib/nth.mjs.map +1 -0
- package/dist/esm/lib/partition.mjs.map +1 -1
- package/dist/esm/lib/peekable.mjs.map +1 -1
- package/dist/esm/lib/position.d.mts +2 -0
- package/dist/esm/lib/position.mjs +4 -0
- package/dist/esm/lib/position.mjs.map +1 -0
- package/dist/esm/lib/prepend.mjs.map +1 -1
- package/dist/esm/lib/product.mjs.map +1 -1
- package/dist/esm/lib/range.mjs.map +1 -1
- package/dist/esm/lib/reduce.mjs.map +1 -1
- package/dist/esm/lib/repeat.mjs.map +1 -1
- package/dist/esm/lib/reverse.mjs +2 -5
- package/dist/esm/lib/reverse.mjs.map +1 -1
- package/dist/esm/lib/shared/_assertFunction.mjs.map +1 -1
- package/dist/esm/lib/shared/_assertNotNegative.mjs.map +1 -1
- package/dist/esm/lib/shared/_assertPositive.mjs.map +1 -1
- package/dist/esm/lib/shared/_compare.d.mts +20 -0
- package/dist/esm/lib/shared/_compare.mjs +30 -0
- package/dist/esm/lib/shared/_compare.mjs.map +1 -0
- package/dist/esm/lib/shared/_makeIterableIterator.mjs.map +1 -1
- package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs.map +1 -1
- package/dist/esm/lib/shared/_toIntegerOrThrow.mjs.map +1 -1
- package/dist/esm/lib/shared/_toNumberOrThrow.mjs.map +1 -1
- package/dist/esm/lib/shared/comparators.d.mts +34 -0
- package/dist/esm/lib/shared/comparators.mjs +21 -0
- package/dist/esm/lib/shared/comparators.mjs.map +1 -0
- package/dist/esm/lib/skip.d.mts +2 -0
- package/dist/esm/lib/skip.mjs +4 -0
- package/dist/esm/lib/skip.mjs.map +1 -0
- package/dist/esm/lib/skipLast.d.mts +2 -0
- package/dist/esm/lib/skipLast.mjs +4 -0
- package/dist/esm/lib/skipLast.mjs.map +1 -0
- package/dist/esm/lib/skipWhile.d.mts +2 -0
- package/dist/esm/lib/skipWhile.mjs +4 -0
- package/dist/esm/lib/skipWhile.mjs.map +1 -0
- package/dist/esm/lib/slice.mjs.map +1 -1
- package/dist/esm/lib/some.mjs.map +1 -1
- package/dist/esm/lib/sorted.mjs.map +1 -1
- package/dist/esm/lib/starMap.mjs.map +1 -1
- package/dist/esm/lib/stepBy.d.mts +24 -0
- package/dist/esm/lib/stepBy.mjs +26 -0
- package/dist/esm/lib/stepBy.mjs.map +1 -0
- package/dist/esm/lib/sum.mjs.map +1 -1
- package/dist/esm/lib/take.mjs.map +1 -1
- package/dist/esm/lib/takeLast.mjs.map +1 -1
- package/dist/esm/lib/takeWhile.d.mts +2 -0
- package/dist/esm/lib/takeWhile.mjs +4 -0
- package/dist/esm/lib/takeWhile.mjs.map +1 -0
- package/dist/esm/lib/tee.mjs.map +1 -1
- package/dist/esm/lib/toArray.mjs.map +1 -1
- package/dist/esm/lib/toIterableIterator.mjs.map +1 -1
- package/dist/esm/lib/union.mjs.map +1 -1
- package/dist/esm/lib/unique.mjs.map +1 -1
- package/dist/esm/lib/unzip.mjs.map +1 -1
- package/dist/esm/lib/zip.mjs.map +1 -1
- package/dist/iife/index.global.js +391 -49
- package/dist/iife/index.global.js.map +1 -1
- package/package.json +295 -25
package/dist/cjs/lib/max.cjs
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var maxBy_cjs = require('./maxBy.cjs');
|
|
4
|
+
var comparators_cjs = require('./shared/comparators.cjs');
|
|
5
5
|
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
8
|
function max(iterable) {
|
|
9
|
-
|
|
10
|
-
for (const value of map_cjs.map(iterable, _toNumberOrThrow_cjs.toNumberOrThrow)) {
|
|
11
|
-
if (max2 === null || value > max2) max2 = value;
|
|
12
|
-
}
|
|
13
|
-
return max2;
|
|
9
|
+
return maxBy_cjs.maxBy(iterable, comparators_cjs.defaultCompare);
|
|
14
10
|
}
|
|
15
11
|
__name(max, "max");
|
|
16
12
|
|
package/dist/cjs/lib/max.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/max.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/max.ts"],"names":["maxBy","defaultCompare"],"mappings":";;;;;;;AA8BO,SAAS,IAAuB,QAA+D,EAAA;AACrG,EAAO,OAAAA,eAAA,CAAM,UAAUC,8BAAc,CAAA;AACtC;AAFgB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"max.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { maxBy } from './maxBy';\nimport type { maxByKey } from './maxByKey';\nimport { defaultCompare } from './shared/comparators';\n\n/**\n * Consumes the iterable and returns the highest number element. If the iterable is empty, it returns `null`.\n *\n * This function uses the default comparator (lexicographically), which means it will compare the elements as strings.\n * If this is undesirable, use {@link maxBy} instead.\n *\n * @seealso {@link maxBy} for a version that allows custom comparators.\n * @seealso {@link maxByKey} for a version that allows custom key extractors.\n *\n * @param iterable An iterator of number values to determine the maximum value of.\n * @returns The maximum value in the input iterator, or `null` if the iterator is empty or contains only non-number values.\n *\n * @example\n * ```typescript\n * import { max } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(max(iterable));\n * // Output: 5\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function max<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType | null {\n\treturn maxBy(iterable, defaultCompare);\n}\n"]}
|
package/dist/cjs/lib/max.d.cts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { IterableResolvable } from './from.cjs';
|
|
2
|
-
import { NumberResolvable } from './shared/_toNumberOrThrow.js';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
|
-
* Consumes the iterable and returns the highest number element. If the iterable is empty,
|
|
4
|
+
* Consumes the iterable and returns the highest number element. If the iterable is empty, it returns `null`.
|
|
5
|
+
*
|
|
6
|
+
* This function uses the default comparator (lexicographically), which means it will compare the elements as strings.
|
|
7
|
+
* If this is undesirable, use {@link maxBy} instead.
|
|
8
|
+
*
|
|
9
|
+
* @seealso {@link maxBy} for a version that allows custom comparators.
|
|
10
|
+
* @seealso {@link maxByKey} for a version that allows custom key extractors.
|
|
6
11
|
*
|
|
7
12
|
* @param iterable An iterator of number values to determine the maximum value of.
|
|
8
13
|
* @returns The maximum value in the input iterator, or `null` if the iterator is empty or contains only non-number values.
|
|
@@ -20,6 +25,6 @@ import { NumberResolvable } from './shared/_toNumberOrThrow.js';
|
|
|
20
25
|
*
|
|
21
26
|
* This function consumes the entire iterator.
|
|
22
27
|
*/
|
|
23
|
-
declare function max(iterable: IterableResolvable<
|
|
28
|
+
declare function max<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType | null;
|
|
24
29
|
|
|
25
30
|
export { max };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _assertFunction_cjs = require('./shared/_assertFunction.cjs');
|
|
4
|
+
var _compare_cjs = require('./shared/_compare.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 maxBy(iterable, comparator) {
|
|
10
|
+
comparator = _assertFunction_cjs.assertFunction(comparator);
|
|
11
|
+
const iterator = toIterableIterator_cjs.toIterableIterator(iterable);
|
|
12
|
+
const first = iterator.next();
|
|
13
|
+
if (first.done) return null;
|
|
14
|
+
let maximum = first.value;
|
|
15
|
+
for (const value of iterator) {
|
|
16
|
+
const comparison = _compare_cjs.compareIteratorElements(value, maximum, comparator);
|
|
17
|
+
if (!_compare_cjs.orderingIsLess(comparison)) {
|
|
18
|
+
maximum = value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return maximum;
|
|
22
|
+
}
|
|
23
|
+
__name(maxBy, "maxBy");
|
|
24
|
+
|
|
25
|
+
exports.maxBy = maxBy;
|
|
26
|
+
//# sourceMappingURL=maxBy.cjs.map
|
|
27
|
+
//# sourceMappingURL=maxBy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/maxBy.ts"],"names":["assertFunction","toIterableIterator","compareIteratorElements","orderingIsLess"],"mappings":";;;;;;;;AAgCO,SAAS,KAAA,CACf,UACA,UACqB,EAAA;AACrB,EAAA,UAAA,GAAaA,mCAAe,UAAU,CAAA;AAEtC,EAAM,MAAA,QAAA,GAAWC,0CAAmB,QAAQ,CAAA;AAC5C,EAAM,MAAA,KAAA,GAAQ,SAAS,IAAK,EAAA;AAC5B,EAAI,IAAA,KAAA,CAAM,MAAa,OAAA,IAAA;AAEvB,EAAA,IAAI,UAAU,KAAM,CAAA,KAAA;AACpB,EAAA,KAAA,MAAW,SAAS,QAAU,EAAA;AAC7B,IAAA,MAAM,UAAa,GAAAC,oCAAA,CAAqC,KAAO,EAAA,OAAA,EAAS,UAAU,CAAA;AAClF,IAAI,IAAA,CAACC,2BAAe,CAAA,UAAU,CAAG,EAAA;AAChC,MAAU,OAAA,GAAA,KAAA;AAAA;AACX;AAGD,EAAO,OAAA,OAAA;AACR;AAnBgB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"maxBy.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport type { max } from './max';\nimport type { maxByKey } from './maxByKey';\nimport { assertFunction } from './shared/_assertFunction';\nimport { compareIteratorElements, orderingIsLess, type CompareByComparator } from './shared/_compare';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Returns the element that gives the maximum value with respect to the specified comparison function.\n *\n * If several elements are equally maximum, the last element is returned. If the iterator is empty, `null` is returned.\n *\n * @seealso {@link max} for a version that uses the default comparator.\n * @seealso {@link maxByKey} for a version that allows custom key extractors.\n *\n * @param iterable An iterator of number values to determine the maximum value of.\n * @param comparator A function to execute for each element produced by the iterator. It should return a number value.\n * @returns The element that gives the maximum value from the specified function, or `null` if the iterator is empty.\n *\n * @example\n * ```typescript\n * import { ascNumber, maxBy } from '@sapphire/iterator-utilities';\n *\n * const iterable = [-3, 0, 1, 5, -10];\n * console.log(maxBy(iterable, ascNumber));\n * // Output: 5\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function maxBy<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcomparator: CompareByComparator<ElementType>\n): ElementType | null {\n\tcomparator = assertFunction(comparator);\n\n\tconst iterator = toIterableIterator(iterable);\n\tconst first = iterator.next();\n\tif (first.done) return null;\n\n\tlet maximum = first.value;\n\tfor (const value of iterator) {\n\t\tconst comparison = compareIteratorElements<ElementType>(value, maximum, comparator);\n\t\tif (!orderingIsLess(comparison)) {\n\t\t\tmaximum = value;\n\t\t}\n\t}\n\n\treturn maximum;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
import { CompareByComparator } from './shared/_compare.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns the element that gives the maximum value with respect to the specified comparison function.
|
|
6
|
+
*
|
|
7
|
+
* If several elements are equally maximum, the last element is returned. If the iterator is empty, `null` is returned.
|
|
8
|
+
*
|
|
9
|
+
* @seealso {@link max} for a version that uses the default comparator.
|
|
10
|
+
* @seealso {@link maxByKey} for a version that allows custom key extractors.
|
|
11
|
+
*
|
|
12
|
+
* @param iterable An iterator of number values to determine the maximum value of.
|
|
13
|
+
* @param comparator A function to execute for each element produced by the iterator. It should return a number value.
|
|
14
|
+
* @returns The element that gives the maximum value from the specified function, or `null` if the iterator is empty.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { ascNumber, maxBy } from '@sapphire/iterator-utilities';
|
|
19
|
+
*
|
|
20
|
+
* const iterable = [-3, 0, 1, 5, -10];
|
|
21
|
+
* console.log(maxBy(iterable, ascNumber));
|
|
22
|
+
* // Output: 5
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
*
|
|
27
|
+
* This function consumes the entire iterator.
|
|
28
|
+
*/
|
|
29
|
+
declare function maxBy<const ElementType>(iterable: IterableResolvable<ElementType>, comparator: CompareByComparator<ElementType>): ElementType | null;
|
|
30
|
+
|
|
31
|
+
export { maxBy };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _assertFunction_cjs = require('./shared/_assertFunction.cjs');
|
|
4
|
+
var _compare_cjs = require('./shared/_compare.cjs');
|
|
5
|
+
var comparators_cjs = require('./shared/comparators.cjs');
|
|
6
|
+
var toIterableIterator_cjs = require('./toIterableIterator.cjs');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
function maxByKey(iterable, callbackFn, comparator = comparators_cjs.defaultCompare) {
|
|
11
|
+
callbackFn = _assertFunction_cjs.assertFunction(callbackFn);
|
|
12
|
+
const iterator = toIterableIterator_cjs.toIterableIterator(iterable);
|
|
13
|
+
const first = iterator.next();
|
|
14
|
+
if (first.done) return null;
|
|
15
|
+
let maximum = first.value;
|
|
16
|
+
let maximumKey = callbackFn(maximum, 0);
|
|
17
|
+
let index = 1;
|
|
18
|
+
for (const value of iterator) {
|
|
19
|
+
const key = callbackFn(value, index++);
|
|
20
|
+
const comparison = _compare_cjs.compareIteratorElements(maximumKey, key, comparator);
|
|
21
|
+
if (!_compare_cjs.orderingIsGreater(comparison)) {
|
|
22
|
+
maximum = value;
|
|
23
|
+
maximumKey = key;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return maximum;
|
|
27
|
+
}
|
|
28
|
+
__name(maxByKey, "maxByKey");
|
|
29
|
+
|
|
30
|
+
exports.maxByKey = maxByKey;
|
|
31
|
+
//# sourceMappingURL=maxByKey.cjs.map
|
|
32
|
+
//# sourceMappingURL=maxByKey.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/maxByKey.ts"],"names":["defaultCompare","assertFunction","toIterableIterator","compareIteratorElements","orderingIsGreater"],"mappings":";;;;;;;;;AAkCO,SAAS,QACf,CAAA,QAAA,EACA,UACA,EAAA,UAAA,GAA8CA,8BACzB,EAAA;AACrB,EAAA,UAAA,GAAaC,mCAAe,UAAU,CAAA;AAEtC,EAAM,MAAA,QAAA,GAAWC,0CAAmB,QAAQ,CAAA;AAC5C,EAAM,MAAA,KAAA,GAAQ,SAAS,IAAK,EAAA;AAC5B,EAAI,IAAA,KAAA,CAAM,MAAa,OAAA,IAAA;AAEvB,EAAA,IAAI,UAAU,KAAM,CAAA,KAAA;AACpB,EAAI,IAAA,UAAA,GAAa,UAAW,CAAA,OAAA,EAAS,CAAC,CAAA;AACtC,EAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,EAAA,KAAA,MAAW,SAAS,QAAU,EAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,UAAW,CAAA,KAAA,EAAO,KAAO,EAAA,CAAA;AACrC,IAAA,MAAM,UAAa,GAAAC,oCAAA,CAAoC,UAAY,EAAA,GAAA,EAAK,UAAU,CAAA;AAElF,IAAI,IAAA,CAACC,8BAAkB,CAAA,UAAU,CAAG,EAAA;AACnC,MAAU,OAAA,GAAA,KAAA;AACV,MAAa,UAAA,GAAA,GAAA;AAAA;AACd;AAGD,EAAO,OAAA,OAAA;AACR;AAzBgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA","file":"maxByKey.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport type { max } from './max';\nimport type { maxBy } from './maxBy';\nimport { assertFunction } from './shared/_assertFunction';\nimport { compareIteratorElements, orderingIsGreater, type CompareByComparator } from './shared/_compare';\nimport { defaultCompare } from './shared/comparators';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Returns the element that gives the maximum value from the specified function.\n *\n * If several elements are equally maximum, the last element is returned. If the iterator is empty, `null` is returned.\n *\n * @seealso {@link max} for a version that uses the default comparator.\n * @seealso {@link maxBy} for a version that allows custom comparators.\n *\n * @param iterable An iterator of number values to determine the maximum value of.\n * @param callbackFn A function to execute for each element produced by the iterator, producing a key to compare with.\n * @param comparator A function to execute for each element produced by the iterator. It should return a number value.\n * @returns The element that gives the maximum value from the specified function, or `null` if the iterator is empty.\n *\n * @example\n * ```typescript\n * import { maxByKey } from '@sapphire/iterator-utilities';\n *\n * const iterable = [-3, 0, 1, 5, -10];\n * console.log(maxByKey(iterable, (value) => Math.abs(value)));\n * // Output: -10\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function maxByKey<const ElementType, const MappedType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => MappedType,\n\tcomparator: CompareByComparator<MappedType> = defaultCompare\n): ElementType | null {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tconst iterator = toIterableIterator(iterable);\n\tconst first = iterator.next();\n\tif (first.done) return null;\n\n\tlet maximum = first.value;\n\tlet maximumKey = callbackFn(maximum, 0);\n\tlet index = 1;\n\tfor (const value of iterator) {\n\t\tconst key = callbackFn(value, index++);\n\t\tconst comparison = compareIteratorElements<MappedType>(maximumKey, key, comparator);\n\n\t\tif (!orderingIsGreater(comparison)) {\n\t\t\tmaximum = value;\n\t\t\tmaximumKey = key;\n\t\t}\n\t}\n\n\treturn maximum;\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
import { CompareByComparator } from './shared/_compare.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns the element that gives the maximum value from the specified function.
|
|
6
|
+
*
|
|
7
|
+
* If several elements are equally maximum, the last element is returned. If the iterator is empty, `null` is returned.
|
|
8
|
+
*
|
|
9
|
+
* @seealso {@link max} for a version that uses the default comparator.
|
|
10
|
+
* @seealso {@link maxBy} for a version that allows custom comparators.
|
|
11
|
+
*
|
|
12
|
+
* @param iterable An iterator of number values to determine the maximum value of.
|
|
13
|
+
* @param callbackFn A function to execute for each element produced by the iterator, producing a key to compare with.
|
|
14
|
+
* @param comparator A function to execute for each element produced by the iterator. It should return a number value.
|
|
15
|
+
* @returns The element that gives the maximum value from the specified function, or `null` if the iterator is empty.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { maxByKey } from '@sapphire/iterator-utilities';
|
|
20
|
+
*
|
|
21
|
+
* const iterable = [-3, 0, 1, 5, -10];
|
|
22
|
+
* console.log(maxByKey(iterable, (value) => Math.abs(value)));
|
|
23
|
+
* // Output: -10
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @remarks
|
|
27
|
+
*
|
|
28
|
+
* This function consumes the entire iterator.
|
|
29
|
+
*/
|
|
30
|
+
declare function maxByKey<const ElementType, const MappedType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => MappedType, comparator?: CompareByComparator<MappedType>): ElementType | null;
|
|
31
|
+
|
|
32
|
+
export { maxByKey };
|
package/dist/cjs/lib/min.cjs
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var minBy_cjs = require('./minBy.cjs');
|
|
4
|
+
var comparators_cjs = require('./shared/comparators.cjs');
|
|
5
5
|
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
8
|
function min(iterable) {
|
|
9
|
-
|
|
10
|
-
for (const value of map_cjs.map(iterable, _toNumberOrThrow_cjs.toNumberOrThrow)) {
|
|
11
|
-
if (min2 === null || value < min2) min2 = value;
|
|
12
|
-
}
|
|
13
|
-
return min2;
|
|
9
|
+
return minBy_cjs.minBy(iterable, comparators_cjs.defaultCompare);
|
|
14
10
|
}
|
|
15
11
|
__name(min, "min");
|
|
16
12
|
|
package/dist/cjs/lib/min.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/min.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/min.ts"],"names":["minBy","defaultCompare"],"mappings":";;;;;;;AA8BO,SAAS,IAAuB,QAA+D,EAAA;AACrG,EAAO,OAAAA,eAAA,CAAM,UAAUC,8BAAc,CAAA;AACtC;AAFgB,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA","file":"min.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { minBy } from './minBy';\nimport type { minByKey } from './minByKey';\nimport { defaultCompare } from './shared/comparators';\n\n/**\n * Consumes the iterable and returns the lowest number element. If the iterable is empty, it returns `null`.\n *\n * This function uses the default comparator (lexicographically), which means it will compare the elements as strings.\n * If this is undesirable, use {@link minBy} instead.\n *\n * @seealso {@link minBy} for a version that allows custom comparators.\n * @seealso {@link minByKey} for a version that allows custom key extractors.\n *\n * @param iterable An iterator of number values to determine the minimum value of.\n * @returns The minimum value in the input iterator, or `null` if the iterator is empty or contains only non-number values.\n *\n * @example\n * ```typescript\n * import { min } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(min(iterable));\n * // Output: 1\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function min<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType | null {\n\treturn minBy(iterable, defaultCompare);\n}\n"]}
|
package/dist/cjs/lib/min.d.cts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { IterableResolvable } from './from.cjs';
|
|
2
|
-
import { NumberResolvable } from './shared/_toNumberOrThrow.js';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
|
-
* Consumes the iterable and returns the lowest number element. If the iterable is empty,
|
|
4
|
+
* Consumes the iterable and returns the lowest number element. If the iterable is empty, it returns `null`.
|
|
5
|
+
*
|
|
6
|
+
* This function uses the default comparator (lexicographically), which means it will compare the elements as strings.
|
|
7
|
+
* If this is undesirable, use {@link minBy} instead.
|
|
8
|
+
*
|
|
9
|
+
* @seealso {@link minBy} for a version that allows custom comparators.
|
|
10
|
+
* @seealso {@link minByKey} for a version that allows custom key extractors.
|
|
6
11
|
*
|
|
7
12
|
* @param iterable An iterator of number values to determine the minimum value of.
|
|
8
13
|
* @returns The minimum value in the input iterator, or `null` if the iterator is empty or contains only non-number values.
|
|
@@ -20,6 +25,6 @@ import { NumberResolvable } from './shared/_toNumberOrThrow.js';
|
|
|
20
25
|
*
|
|
21
26
|
* This function consumes the entire iterator.
|
|
22
27
|
*/
|
|
23
|
-
declare function min(iterable: IterableResolvable<
|
|
28
|
+
declare function min<const ElementType>(iterable: IterableResolvable<ElementType>): ElementType | null;
|
|
24
29
|
|
|
25
30
|
export { min };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _assertFunction_cjs = require('./shared/_assertFunction.cjs');
|
|
4
|
+
var _compare_cjs = require('./shared/_compare.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 minBy(iterable, comparator) {
|
|
10
|
+
comparator = _assertFunction_cjs.assertFunction(comparator);
|
|
11
|
+
const iterator = toIterableIterator_cjs.toIterableIterator(iterable);
|
|
12
|
+
const first = iterator.next();
|
|
13
|
+
if (first.done) return null;
|
|
14
|
+
let minimum = first.value;
|
|
15
|
+
for (const value of iterator) {
|
|
16
|
+
const comparison = _compare_cjs.compareIteratorElements(value, minimum, comparator);
|
|
17
|
+
if (!_compare_cjs.orderingIsGreater(comparison)) {
|
|
18
|
+
minimum = value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return minimum;
|
|
22
|
+
}
|
|
23
|
+
__name(minBy, "minBy");
|
|
24
|
+
|
|
25
|
+
exports.minBy = minBy;
|
|
26
|
+
//# sourceMappingURL=minBy.cjs.map
|
|
27
|
+
//# sourceMappingURL=minBy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/minBy.ts"],"names":["assertFunction","toIterableIterator","compareIteratorElements","orderingIsGreater"],"mappings":";;;;;;;;AAgCO,SAAS,KAAA,CACf,UACA,UACqB,EAAA;AACrB,EAAA,UAAA,GAAaA,mCAAe,UAAU,CAAA;AAEtC,EAAM,MAAA,QAAA,GAAWC,0CAAmB,QAAQ,CAAA;AAC5C,EAAM,MAAA,KAAA,GAAQ,SAAS,IAAK,EAAA;AAC5B,EAAI,IAAA,KAAA,CAAM,MAAa,OAAA,IAAA;AAEvB,EAAA,IAAI,UAAU,KAAM,CAAA,KAAA;AACpB,EAAA,KAAA,MAAW,SAAS,QAAU,EAAA;AAC7B,IAAA,MAAM,UAAa,GAAAC,oCAAA,CAAqC,KAAO,EAAA,OAAA,EAAS,UAAU,CAAA;AAElF,IAAI,IAAA,CAACC,8BAAkB,CAAA,UAAU,CAAG,EAAA;AACnC,MAAU,OAAA,GAAA,KAAA;AAAA;AACX;AAGD,EAAO,OAAA,OAAA;AACR;AApBgB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"minBy.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport type { min } from './min';\nimport type { minByKey } from './minByKey';\nimport { assertFunction } from './shared/_assertFunction';\nimport { compareIteratorElements, orderingIsGreater, type CompareByComparator } from './shared/_compare';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Returns the element that gives the minimum value with respect to the specified comparison function.\n *\n * If several elements are equally minimum, the last element is returned. If the iterator is empty, `null` is returned.\n *\n * @seealso {@link min} for a version that uses the default comparator.\n * @seealso {@link minByKey} for a version that allows custom key extractors.\n *\n * @param iterable An iterator of number values to determine the minimum value of.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a number value.\n * @returns The element that gives the minimum value from the specified function, or `null` if the iterator is empty.\n *\n * @example\n * ```typescript\n * import { ascNumber, minBy } from '@sapphire/iterator-utilities';\n *\n * const iterable = [-3, 0, 1, 5, -10];\n * console.log(minBy(iterable, ascNumber));\n * // Output: -10\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function minBy<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcomparator: CompareByComparator<ElementType>\n): ElementType | null {\n\tcomparator = assertFunction(comparator);\n\n\tconst iterator = toIterableIterator(iterable);\n\tconst first = iterator.next();\n\tif (first.done) return null;\n\n\tlet minimum = first.value;\n\tfor (const value of iterator) {\n\t\tconst comparison = compareIteratorElements<ElementType>(value, minimum, comparator);\n\n\t\tif (!orderingIsGreater(comparison)) {\n\t\t\tminimum = value;\n\t\t}\n\t}\n\n\treturn minimum;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
import { CompareByComparator } from './shared/_compare.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns the element that gives the minimum value with respect to the specified comparison function.
|
|
6
|
+
*
|
|
7
|
+
* If several elements are equally minimum, the last element is returned. If the iterator is empty, `null` is returned.
|
|
8
|
+
*
|
|
9
|
+
* @seealso {@link min} for a version that uses the default comparator.
|
|
10
|
+
* @seealso {@link minByKey} for a version that allows custom key extractors.
|
|
11
|
+
*
|
|
12
|
+
* @param iterable An iterator of number values to determine the minimum value of.
|
|
13
|
+
* @param callbackFn A function to execute for each element produced by the iterator. It should return a number value.
|
|
14
|
+
* @returns The element that gives the minimum value from the specified function, or `null` if the iterator is empty.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { ascNumber, minBy } from '@sapphire/iterator-utilities';
|
|
19
|
+
*
|
|
20
|
+
* const iterable = [-3, 0, 1, 5, -10];
|
|
21
|
+
* console.log(minBy(iterable, ascNumber));
|
|
22
|
+
* // Output: -10
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
*
|
|
27
|
+
* This function consumes the entire iterator.
|
|
28
|
+
*/
|
|
29
|
+
declare function minBy<const ElementType>(iterable: IterableResolvable<ElementType>, comparator: CompareByComparator<ElementType>): ElementType | null;
|
|
30
|
+
|
|
31
|
+
export { minBy };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _assertFunction_cjs = require('./shared/_assertFunction.cjs');
|
|
4
|
+
var _compare_cjs = require('./shared/_compare.cjs');
|
|
5
|
+
var comparators_cjs = require('./shared/comparators.cjs');
|
|
6
|
+
var toIterableIterator_cjs = require('./toIterableIterator.cjs');
|
|
7
|
+
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
function minByKey(iterable, callbackFn, comparator = comparators_cjs.defaultCompare) {
|
|
11
|
+
callbackFn = _assertFunction_cjs.assertFunction(callbackFn);
|
|
12
|
+
const iterator = toIterableIterator_cjs.toIterableIterator(iterable);
|
|
13
|
+
const first = iterator.next();
|
|
14
|
+
if (first.done) return null;
|
|
15
|
+
let minimum = first.value;
|
|
16
|
+
let minimumKey = callbackFn(minimum, 0);
|
|
17
|
+
let index = 1;
|
|
18
|
+
for (const value of iterator) {
|
|
19
|
+
const key = callbackFn(value, index++);
|
|
20
|
+
const comparison = _compare_cjs.compareIteratorElements(minimumKey, key, comparator);
|
|
21
|
+
if (!_compare_cjs.orderingIsLess(comparison)) {
|
|
22
|
+
minimum = value;
|
|
23
|
+
minimumKey = key;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return minimum;
|
|
27
|
+
}
|
|
28
|
+
__name(minByKey, "minByKey");
|
|
29
|
+
|
|
30
|
+
exports.minByKey = minByKey;
|
|
31
|
+
//# sourceMappingURL=minByKey.cjs.map
|
|
32
|
+
//# sourceMappingURL=minByKey.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/minByKey.ts"],"names":["defaultCompare","assertFunction","toIterableIterator","compareIteratorElements","orderingIsLess"],"mappings":";;;;;;;;;AAiCO,SAAS,QACf,CAAA,QAAA,EACA,UACA,EAAA,UAAA,GAA8CA,8BACzB,EAAA;AACrB,EAAA,UAAA,GAAaC,mCAAe,UAAU,CAAA;AAEtC,EAAM,MAAA,QAAA,GAAWC,0CAAmB,QAAQ,CAAA;AAC5C,EAAM,MAAA,KAAA,GAAQ,SAAS,IAAK,EAAA;AAC5B,EAAI,IAAA,KAAA,CAAM,MAAa,OAAA,IAAA;AAEvB,EAAA,IAAI,UAAU,KAAM,CAAA,KAAA;AACpB,EAAI,IAAA,UAAA,GAAa,UAAW,CAAA,OAAA,EAAS,CAAC,CAAA;AACtC,EAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,EAAA,KAAA,MAAW,SAAS,QAAU,EAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,UAAW,CAAA,KAAA,EAAO,KAAO,EAAA,CAAA;AACrC,IAAA,MAAM,UAAa,GAAAC,oCAAA,CAAoC,UAAY,EAAA,GAAA,EAAK,UAAU,CAAA;AAElF,IAAI,IAAA,CAACC,2BAAe,CAAA,UAAU,CAAG,EAAA;AAChC,MAAU,OAAA,GAAA,KAAA;AACV,MAAa,UAAA,GAAA,GAAA;AAAA;AACd;AAGD,EAAO,OAAA,OAAA;AACR;AAzBgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA","file":"minByKey.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport type { min } from './min';\nimport type { minBy } from './minBy';\nimport { assertFunction } from './shared/_assertFunction';\nimport { compareIteratorElements, orderingIsLess, type CompareByComparator } from './shared/_compare';\nimport { defaultCompare } from './shared/comparators';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Returns the element that gives the minimum value from the specified function.\n *\n * If several elements are equally minimum, the last element is returned. If the iterator is empty, `null` is returned.\n *\n * @seealso {@link min} for a version that uses the default comparator.\n * @seealso {@link minBy} for a version that allows custom comparators.\n *\n * @param iterable An iterator of number values to determine the minimum value of.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a number value.\n * @returns The element that gives the minimum value from the specified function, or `null` if the iterator is empty.\n *\n * @example\n * ```typescript\n * import { minByKey } from '@sapphire/iterator-utilities';\n *\n * const iterable = [-3, 0, 1, 5, -10];\n * console.log(minByKey(iterable, (value) => Math.abs(value)));\n * // Output: 0\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function minByKey<const ElementType, const MappedType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => MappedType,\n\tcomparator: CompareByComparator<MappedType> = defaultCompare\n): ElementType | null {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tconst iterator = toIterableIterator(iterable);\n\tconst first = iterator.next();\n\tif (first.done) return null;\n\n\tlet minimum = first.value;\n\tlet minimumKey = callbackFn(minimum, 0);\n\tlet index = 1;\n\tfor (const value of iterator) {\n\t\tconst key = callbackFn(value, index++);\n\t\tconst comparison = compareIteratorElements<MappedType>(minimumKey, key, comparator);\n\n\t\tif (!orderingIsLess(comparison)) {\n\t\t\tminimum = value;\n\t\t\tminimumKey = key;\n\t\t}\n\t}\n\n\treturn minimum;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
import { CompareByComparator } from './shared/_compare.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns the element that gives the minimum value from the specified function.
|
|
6
|
+
*
|
|
7
|
+
* If several elements are equally minimum, the last element is returned. If the iterator is empty, `null` is returned.
|
|
8
|
+
*
|
|
9
|
+
* @seealso {@link min} for a version that uses the default comparator.
|
|
10
|
+
* @seealso {@link minBy} for a version that allows custom comparators.
|
|
11
|
+
*
|
|
12
|
+
* @param iterable An iterator of number values to determine the minimum value of.
|
|
13
|
+
* @param callbackFn A function to execute for each element produced by the iterator. It should return a number value.
|
|
14
|
+
* @returns The element that gives the minimum value from the specified function, or `null` if the iterator is empty.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { minByKey } from '@sapphire/iterator-utilities';
|
|
19
|
+
*
|
|
20
|
+
* const iterable = [-3, 0, 1, 5, -10];
|
|
21
|
+
* console.log(minByKey(iterable, (value) => Math.abs(value)));
|
|
22
|
+
* // Output: 0
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
*
|
|
27
|
+
* This function consumes the entire iterator.
|
|
28
|
+
*/
|
|
29
|
+
declare function minByKey<const ElementType, const MappedType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => MappedType, comparator?: CompareByComparator<MappedType>): ElementType | null;
|
|
30
|
+
|
|
31
|
+
export { minByKey };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var equal_cjs = require('./equal.cjs');
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
function notEqual(iterable, other) {
|
|
8
|
+
return !equal_cjs.equal(iterable, other);
|
|
9
|
+
}
|
|
10
|
+
__name(notEqual, "notEqual");
|
|
11
|
+
|
|
12
|
+
exports.ne = notEqual;
|
|
13
|
+
exports.notEqual = notEqual;
|
|
14
|
+
//# sourceMappingURL=notEqual.cjs.map
|
|
15
|
+
//# sourceMappingURL=notEqual.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/notEqual.ts"],"names":["equal"],"mappings":";;;;;;AAwBO,SAAS,QAAA,CAA4B,UAA2C,KAAiD,EAAA;AACvI,EAAO,OAAA,CAACA,eAAM,CAAA,QAAA,EAAU,KAAK,CAAA;AAC9B;AAFgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA","file":"notEqual.cjs","sourcesContent":["import { equal } from './equal';\nimport type { IterableResolvable } from './from';\n\n/**\n * Determines if the elements of both iterators are not equal.\n *\n * @param iterable The iterator to compare.\n * @param other The iterator to compare against.\n * @returns Whether the two iterators are not equal.\n *\n * @example\n * ```typescript\n * import { notEqual } from '@sapphire/iterator-utilities';\n *\n * console.log(notEqual([1], [1]));\n * // Output: false\n * console.log(notEqual([1], [1, 2]));\n * // Output: true\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function notEqual<const ElementType>(iterable: IterableResolvable<ElementType>, other: IterableResolvable<ElementType>): boolean {\n\treturn !equal(iterable, other);\n}\n\nexport { notEqual as ne };\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IterableResolvable } from './from.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Determines if the elements of both iterators are not equal.
|
|
5
|
+
*
|
|
6
|
+
* @param iterable The iterator to compare.
|
|
7
|
+
* @param other The iterator to compare against.
|
|
8
|
+
* @returns Whether the two iterators are not equal.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { notEqual } from '@sapphire/iterator-utilities';
|
|
13
|
+
*
|
|
14
|
+
* console.log(notEqual([1], [1]));
|
|
15
|
+
* // Output: false
|
|
16
|
+
* console.log(notEqual([1], [1, 2]));
|
|
17
|
+
* // Output: true
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
*
|
|
22
|
+
* This function consumes the entire iterator.
|
|
23
|
+
*/
|
|
24
|
+
declare function notEqual<const ElementType>(iterable: IterableResolvable<ElementType>, other: IterableResolvable<ElementType>): boolean;
|
|
25
|
+
|
|
26
|
+
export { notEqual as ne, notEqual };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"nth.cjs","sourcesContent":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/partition.ts"],"names":["assertFunction","toIterableIterator"],"mappings":";;;;;;;AAwCO,SAAS,SAAA,CACf,UACA,SACiC,EAAA;AACjC,EAAA,SAAA,GAAYA,mCAAe,SAAS,CAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/partition.ts"],"names":["assertFunction","toIterableIterator"],"mappings":";;;;;;;AAwCO,SAAS,SAAA,CACf,UACA,SACiC,EAAA;AACjC,EAAA,SAAA,GAAYA,mCAAe,SAAS,CAAA;AAEpC,EAAA,MAAM,aAA4B,EAAC;AACnC,EAAA,MAAM,cAA6B,EAAC;AAEpC,EAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,EAAW,KAAA,MAAA,KAAA,IAASC,yCAAmB,CAAA,QAAQ,CAAG,EAAA;AACjD,IAAI,IAAA,SAAA,CAAU,KAAO,EAAA,KAAA,EAAO,CAAG,EAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAAA,KACf,MAAA;AACN,MAAA,WAAA,CAAY,KAAK,KAAK,CAAA;AAAA;AACvB;AAGD,EAAO,OAAA,CAAC,YAAY,WAAW,CAAA;AAChC;AAnBgB,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA","file":"partition.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and creates two arrays, one with the elements that pass the test and another with the elements that don't.\n *\n * @param iterable An iterator to partition.\n * @param predicate A function that determines which partition an element belongs to.\n * @returns An array containing two iterators. The first iterator contains elements that satisfy the predicate, and the\n * second iterator contains elements that do not.\n *\n * @example\n * ```typescript\n * import { partition } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * const [even, odd] = partition(iterable, (value) => value % 2 === 0);\n *\n * console.log(even);\n * // Output: [2, 4]\n *\n * console.log(odd);\n * // Output: [1, 3, 5]\n * ```\n *\n * @remarks\n *\n * This function collects all elements of the provided iterator into two arrays based on the predicate before returning\n * them, which may not be desirable for large iterators.\n */\nexport function partition<const ElementType, const FilteredType extends ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tpredicate: (value: ElementType, index: number) => value is FilteredType\n): [FilteredType[], Exclude<ElementType, FilteredType>[]];\nexport function partition<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tpredicate: (value: ElementType, index: number) => boolean\n): [ElementType[], ElementType[]];\n\nexport function partition<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tpredicate: (value: ElementType, index: number) => boolean\n): [ElementType[], ElementType[]] {\n\tpredicate = assertFunction(predicate);\n\n\tconst bufferLeft: ElementType[] = [];\n\tconst bufferRight: ElementType[] = [];\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tif (predicate(value, index++)) {\n\t\t\tbufferLeft.push(value);\n\t\t} else {\n\t\t\tbufferRight.push(value);\n\t\t}\n\t}\n\n\treturn [bufferLeft, bufferRight];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/peekable.ts"],"names":["from"],"mappings":";;;;;;AA6BO,SAAS,SAA4B,QAAkE,EAAA;AAC7G,EAAM,MAAA,gBAAA,GAAmBA,cAAK,QAAQ,CAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/peekable.ts"],"names":["from"],"mappings":";;;;;;AA6BO,SAAS,SAA4B,QAAkE,EAAA;AAC7G,EAAM,MAAA,gBAAA,GAAmBA,cAAK,QAAQ,CAAA;AACtC,EAAI,IAAA,MAAA;AACJ,EAAO,OAAA;AAAA,IACN,IAAO,GAAA;AACN,MAAA,IAAI,MAAQ,EAAA;AACX,QAAA,MAAM,KAAQ,GAAA,MAAA;AACd,QAAS,MAAA,GAAA,KAAA,CAAA;AACT,QAAO,OAAA,KAAA;AAAA;AAGR,MAAA,OAAO,iBAAiB,IAAK,EAAA;AAAA,KAC9B;AAAA,IACA,IAAO,GAAA;AACN,MAAQ,OAAA,MAAA,KAAW,iBAAiB,IAAK,EAAA;AAAA,KAC1C;AAAA,IACA,CAAC,MAAO,CAAA,QAAQ,CAAI,GAAA;AACnB,MAAO,OAAA,IAAA;AAAA;AACR,GACD;AACD;AApBgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA","file":"peekable.cjs","sourcesContent":["import { from, type IterableResolvable } from './from';\n\n/**\n * Creates an iterator that allows you to peek at the next element without advancing the iterator.\n *\n * @template ElementType The type of elements in the iterable.\n * @param iterable The iterable to create a peekable iterator from.\n * @returns A new peekable iterator.\n *\n * @example\n * ```typescript\n * import { peekable } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * const peekableIterator = peekable(iterable);\n *\n * console.log(peekableIterator.next());\n * // Output: { value: 1, done: false }\n *\n * console.log(peekableIterator.peek());\n * // Output: { value: 2, done: false }\n *\n * console.log(peekableIterator.next());\n * // Output: { value: 2, done: false }\n *\n * console.log(peekableIterator.next());\n * // Output: { value: 3, done: false }\n * ```\n */\nexport function peekable<const ElementType>(iterable: IterableResolvable<ElementType>): Peekable<ElementType> {\n\tconst resolvedIterable = from(iterable);\n\tlet peeked: IteratorResult<ElementType> | undefined;\n\treturn {\n\t\tnext() {\n\t\t\tif (peeked) {\n\t\t\t\tconst value = peeked;\n\t\t\t\tpeeked = undefined;\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\treturn resolvedIterable.next();\n\t\t},\n\t\tpeek() {\n\t\t\treturn (peeked ??= resolvedIterable.next());\n\t\t},\n\t\t[Symbol.iterator]() {\n\t\t\treturn this as IterableIterator<ElementType>;\n\t\t}\n\t};\n}\n\nexport interface Peekable<T> extends IterableIterator<T> {\n\tpeek(): IteratorResult<T>;\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var indexOf_cjs = require('./indexOf.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "position", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return indexOf_cjs.indexOf; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=position.cjs.map
|
|
12
|
+
//# sourceMappingURL=position.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"position.cjs","sourcesContent":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/prepend.ts"],"names":["iterable","toIterableIterator"],"mappings":";;;;;;AAoBO,UAAU,OAAA,CAChB,aACG,SAC6B,EAAA;AAChC,EAAA,KAAA,MAAWA,aAAY,SAAW,EAAA;AACjC,IAAA,OAAOC,0CAAmBD,SAAQ,CAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/prepend.ts"],"names":["iterable","toIterableIterator"],"mappings":";;;;;;AAoBO,UAAU,OAAA,CAChB,aACG,SAC6B,EAAA;AAChC,EAAA,KAAA,MAAWA,aAAY,SAAW,EAAA;AACjC,IAAA,OAAOC,0CAAmBD,SAAQ,CAAA;AAAA;AAGnC,EAAA,OAAOC,0CAAmB,QAAQ,CAAA;AACnC;AATiB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"prepend.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterator with the provided iterables prepended to the first iterable.\n *\n * @param iterable The iterator to prepend values to.\n * @param iterables The iterables to prepend to the iterator.\n * @returns An iterator that yields the values of the provided iterator followed by the values of the provided iterables.\n *\n * @example\n * ```typescript\n * import { prepend } from '@sapphire/iterator-utilities';\n *\n * console.log([...prepend([3, 4, 5], [1, 2])]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * @seealso {@link append} to append values to the end of an iterator.\n */\nexport function* prepend<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\t...iterables: IterableResolvable<ElementType>[]\n): IterableIterator<ElementType> {\n\tfor (const iterable of iterables) {\n\t\tyield* toIterableIterator(iterable);\n\t}\n\n\tyield* toIterableIterator(iterable);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/product.ts"],"names":["map","toNumberOrThrow"],"mappings":";;;;;;;AAuBO,SAAS,QAAQ,QAA8C,EAAA;AACrE,EAAA,IAAI,MAAS,GAAA,CAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/product.ts"],"names":["map","toNumberOrThrow"],"mappings":";;;;;;;AAuBO,SAAS,QAAQ,QAA8C,EAAA;AACrE,EAAA,IAAI,MAAS,GAAA,CAAA;AACb,EAAA,KAAA,MAAW,KAAS,IAAAA,WAAA,CAAI,QAAU,EAAAC,oCAAe,CAAG,EAAA;AACnD,IAAU,MAAA,IAAA,KAAA;AAAA;AAGX,EAAO,OAAA,MAAA;AACR;AAPgB,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA","file":"product.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { map } from './map';\nimport { toNumberOrThrow } from './shared/_toNumberOrThrow';\n\n/**\n * Consumes the iterable and returns the product of all the elements. If the iterable is empty, it returns `1`.\n *\n * @param iterable An iterator to calculate the product of.\n * @returns The product of the elements in the input iterator.\n *\n * @example\n * ```typescript\n * import { product } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(product(iterable));\n * // Output: 120\n *\n * const iterable = [1, 2, 3, 4, 5, 0];\n * console.log(product(iterable));\n * // Output: 0\n * ```\n */\nexport function product(iterable: IterableResolvable<number>): number {\n\tlet result = 1;\n\tfor (const value of map(iterable, toNumberOrThrow)) {\n\t\tresult *= value;\n\t}\n\n\treturn result;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/range.ts"],"names":["toNumberOrThrow"],"mappings":";;;;;;AAgCO,UAAU,KAAA,CAAM,KAAe,EAAA,GAAA,EAAa,IAAqD,EAAA;AACvG,EAAA,KAAA,GAAQA,qCAAgB,KAAK,CAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/range.ts"],"names":["toNumberOrThrow"],"mappings":";;;;;;AAgCO,UAAU,KAAA,CAAM,KAAe,EAAA,GAAA,EAAa,IAAqD,EAAA;AACvG,EAAA,KAAA,GAAQA,qCAAgB,KAAK,CAAA;AAC7B,EAAA,GAAA,GAAMA,qCAAgB,GAAG,CAAA;AAEzB,EAAA,IAAI,SAAS,KAAW,CAAA,EAAA;AACvB,IAAO,IAAA,GAAA,KAAA,GAAQ,MAAM,CAAI,GAAA,CAAA,CAAA;AAAA,GACnB,MAAA;AACN,IAAA,IAAA,GAAOA,qCAAgB,IAAI,CAAA;AAG3B,IAAA,IAAI,SAAS,CAAG,EAAA;AACf,MAAM,MAAA,IAAI,WAAW,qBAAqB,CAAA;AAAA;AAI3C,IAAI,IAAA,IAAA,GAAO,CAAK,IAAA,KAAA,GAAQ,GAAK,EAAA;AAC5B,MAAM,MAAA,IAAI,WAAW,mDAAmD,CAAA;AAAA,KAC9D,MAAA,IAAA,IAAA,GAAO,CAAK,IAAA,KAAA,GAAQ,GAAK,EAAA;AACnC,MAAM,MAAA,IAAI,WAAW,sDAAsD,CAAA;AAAA;AAC5E;AAGD,EAAA,IAAI,QAAQ,GAAK,EAAA;AAChB,IAAA,KAAA,IAAS,CAAI,GAAA,KAAA,EAAO,CAAI,GAAA,GAAA,EAAK,KAAK,IAAM,EAAA;AACvC,MAAM,MAAA,CAAA;AAAA;AACP,GACM,MAAA;AACN,IAAA,KAAA,IAAS,CAAI,GAAA,KAAA,EAAO,CAAI,GAAA,GAAA,EAAK,KAAK,IAAM,EAAA;AACvC,MAAM,MAAA,CAAA;AAAA;AACP;AAEF;AA/BiB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA","file":"range.cjs","sourcesContent":["import { toNumberOrThrow } from './shared/_toNumberOrThrow';\n\n/**\n * Creates an iterable with the numbers from `start` to `stop` (exclusive) with an optional step.\n *\n * @param start The value of the first number in the range.\n * @param end The end value of the range.\n * @param step The amount to increment the range by.\n *\n * @example\n * ```typescript\n * import { range } from '@sapphire/iterator-utilities';\n *\n * const iterable = range(0, 5);\n * console.log([...iterable]);\n * // Output: [0, 1, 2, 3, 4]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = range(5, 0);\n * console.log([...iterable]);\n * // Output: [5, 4, 3, 2, 1]\n * ```\n *\n * @example\n * ```typescript\n * const iterable = range(0, 5, 2);\n * console.log([...iterable]);\n * // Output: [0, 2, 4]\n * ```\n */\nexport function* range(start: number, end: number, step?: number | undefined): IterableIterator<number> {\n\tstart = toNumberOrThrow(start);\n\tend = toNumberOrThrow(end);\n\n\tif (step === undefined) {\n\t\tstep = start < end ? 1 : -1;\n\t} else {\n\t\tstep = toNumberOrThrow(step);\n\n\t\t// Prevent infinite loops.\n\t\tif (step === 0) {\n\t\t\tthrow new RangeError('Step cannot be zero');\n\t\t}\n\n\t\t// If the step is positive, the start must be less than the end.\n\t\tif (step > 0 && start > end) {\n\t\t\tthrow new RangeError('Start must be less than end when step is positive');\n\t\t} else if (step < 0 && start < end) {\n\t\t\tthrow new RangeError('Start must be greater than end when step is negative');\n\t\t}\n\t}\n\n\tif (start < end) {\n\t\tfor (let i = start; i < end; i += step) {\n\t\t\tyield i;\n\t\t}\n\t} else {\n\t\tfor (let i = start; i > end; i += step) {\n\t\t\tyield i;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/reduce.ts"],"names":["assertFunction","toIterableIterator"],"mappings":";;;;;;;AAgCO,SAAS,MAAA,CACf,QACA,EAAA,UAAA,EACA,YACa,EAAA;AACb,EAAA,UAAA,GAAaA,mCAAe,UAAU,CAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/reduce.ts"],"names":["assertFunction","toIterableIterator"],"mappings":";;;;;;;AAgCO,SAAS,MAAA,CACf,QACA,EAAA,UAAA,EACA,YACa,EAAA;AACb,EAAA,UAAA,GAAaA,mCAAe,UAAU,CAAA;AAEtC,EAAI,IAAA,KAAA;AACJ,EAAI,IAAA,WAAA;AACJ,EAAM,MAAA,gBAAA,GAAmBC,0CAAmB,QAAQ,CAAA;AACpD,EAAI,IAAA,SAAA,CAAU,SAAS,CAAG,EAAA;AACzB,IAAM,MAAA,UAAA,GAAa,iBAAiB,IAAK,EAAA;AACzC,IAAA,IAAI,UAAW,CAAA,IAAA,EAAY,MAAA,IAAI,UAAU,gDAAgD,CAAA;AAEzF,IAAQ,KAAA,GAAA,CAAA;AACR,IAAA,WAAA,GAAc,UAAW,CAAA,KAAA;AAAA,GACnB,MAAA;AACN,IAAQ,KAAA,GAAA,CAAA;AACR,IAAc,WAAA,GAAA,YAAA;AAAA;AAGf,EAAA,KAAA,MAAW,SAAS,gBAAkB,EAAA;AACrC,IAAc,WAAA,GAAA,UAAA,CAAW,WAAa,EAAA,KAAA,EAAO,KAAO,EAAA,CAAA;AAAA;AAGrD,EAAO,OAAA,WAAA;AACR;AA1BgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"reduce.cjs","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and reduces it to the reducer function's result.\n *\n * @param iterable An iterator to reduce.\n * @param callbackFn A function to execute for each element produced by the iterator. Its return value becomes the value\n * of the `accumulator` parameter on the next invocation of `callbackFn`. For the last invocation, the return value\n * becomes the return value of `reduce()`.\n * @param initialValue A value to which `accumulator` is initialized the first time the callback is called. If\n * `initialValue` is specified, `callbackFn` starts executing with the first element as `currentValue`. If\n * `initialValue` is not specified, `accumulator` is initialized to the first element, and `callbackFn` starts executing\n * with the second element as `currentValue`. In this case, if the iterator is empty (so that there's no first value to\n * return as `accumulator`), an error is thrown.\n * @returns\n *\n * @example\n * ```typescript\n * import { reduce } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(reduce(iterable, (accumulator, currentValue) => accumulator + currentValue));\n * // Output: 15\n * ```\n *\n * @remarks\n *\n * If `initialValue` is not provided, the first element of the iterator is used as the initial value of `accumulator`,\n * consuming the first element.\n */\nexport function reduce<const ElementType, const MappedType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (accumulator: MappedType, currentValue: ElementType, currentIndex: number) => MappedType,\n\tinitialValue?: MappedType\n): MappedType {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index: number;\n\tlet accumulator: MappedType;\n\tconst resolvedIterable = toIterableIterator(iterable);\n\tif (arguments.length < 3) {\n\t\tconst firstValue = resolvedIterable.next();\n\t\tif (firstValue.done) throw new TypeError('Reduce of empty iterator with no initial value');\n\n\t\tindex = 1;\n\t\taccumulator = firstValue.value! as MappedType;\n\t} else {\n\t\tindex = 0;\n\t\taccumulator = initialValue!;\n\t}\n\n\tfor (const value of resolvedIterable) {\n\t\taccumulator = callbackFn(accumulator, value, index++);\n\t}\n\n\treturn accumulator;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/repeat.ts"],"names":["assertNotNegative","toNumberOrThrow","makeIterableIterator"],"mappings":";;;;;;;;AAqBO,SAAS,MAAA,CAA0B,OAAoB,KAA8C,EAAA;AAC3G,EAAA,KAAA,GAAQA,wCAAkB,CAAAC,oCAAA,CAAgB,KAAK,CAAA,EAAG,KAAK,CAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/repeat.ts"],"names":["assertNotNegative","toNumberOrThrow","makeIterableIterator"],"mappings":";;;;;;;;AAqBO,SAAS,MAAA,CAA0B,OAAoB,KAA8C,EAAA;AAC3G,EAAA,KAAA,GAAQA,wCAAkB,CAAAC,oCAAA,CAAgB,KAAK,CAAA,EAAG,KAAK,CAAA;AAEvD,EAAA,IAAI,CAAI,GAAA,CAAA;AACR,EAAO,OAAAC,8CAAA;AAAA,IAAkC,MACxC,CAAA,IAAK,KACF,GAAA,EAAE,IAAM,EAAA,IAAA,EAAM,KAAO,EAAA,KAAA,CAAA,EACpB,IAAA,CAAA,EAAA,EAAK,EAAE,IAAA,EAAM,OAAO,KAAM,EAAA;AAAA,GAC/B;AACD;AATgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA","file":"repeat.cjs","sourcesContent":["import { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toNumberOrThrow } from './shared/_toNumberOrThrow';\n\n/**\n * Creates an iterable that repeats the input iterable `count` times.\n *\n * @param value The value to be repeated.\n * @param count The number of times to repeat the value.\n *\n * @example\n * ```typescript\n * import { repeat } from '@sapphire/iterator-utilities';\n *\n * const iterator = repeat('Hello, world!', 3);\n * console.log([...iterator]);\n * // Output: ['Hello, world!', 'Hello, world!', 'Hello, world!']\n * ```\n *\n * @remarks This function does not clone `value`, it will be repeated as a reference.\n */\nexport function repeat<const ElementType>(value: ElementType, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toNumberOrThrow(count), count);\n\n\tlet i = 0;\n\treturn makeIterableIterator<ElementType>(() =>\n\t\ti >= count //\n\t\t\t? { done: true, value: undefined }\n\t\t\t: (i++, { done: false, value })\n\t);\n}\n"]}
|
package/dist/cjs/lib/reverse.cjs
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var collect_cjs = require('./collect.cjs');
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
6
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
7
|
function* reverse(iterable) {
|
|
8
|
-
const items =
|
|
9
|
-
for (const item of toIterableIterator_cjs.toIterableIterator(iterable)) {
|
|
10
|
-
items.push(item);
|
|
11
|
-
}
|
|
8
|
+
const items = collect_cjs.collect(iterable);
|
|
12
9
|
for (let i = items.length - 1; i >= 0; i--) {
|
|
13
10
|
yield items[i];
|
|
14
11
|
}
|