@sapphire/iterator-utilities 1.0.3-next.cd7e6b59 → 1.0.3-next.ec73e32c
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/lib/contains.cjs +1 -2
- package/dist/cjs/lib/contains.cjs.map +1 -1
- package/dist/cjs/lib/drop.cjs +3 -6
- package/dist/cjs/lib/drop.cjs.map +1 -1
- package/dist/cjs/lib/dropLast.cjs +1 -2
- package/dist/cjs/lib/dropLast.cjs.map +1 -1
- package/dist/cjs/lib/every.cjs +1 -2
- package/dist/cjs/lib/every.cjs.map +1 -1
- package/dist/cjs/lib/filter.cjs +1 -2
- package/dist/cjs/lib/filter.cjs.map +1 -1
- package/dist/cjs/lib/max.cjs +1 -2
- package/dist/cjs/lib/max.cjs.map +1 -1
- package/dist/cjs/lib/min.cjs +1 -2
- package/dist/cjs/lib/min.cjs.map +1 -1
- package/dist/cjs/lib/reduce.cjs +1 -2
- package/dist/cjs/lib/reduce.cjs.map +1 -1
- package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs +3 -6
- package/dist/cjs/lib/shared/_toIntegerOrInfinityOrThrow.cjs.map +1 -1
- package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs +3 -6
- package/dist/cjs/lib/shared/_toIntegerOrThrow.cjs.map +1 -1
- package/dist/cjs/lib/slice.cjs +1 -2
- package/dist/cjs/lib/slice.cjs.map +1 -1
- package/dist/cjs/lib/take.cjs +1 -2
- package/dist/cjs/lib/take.cjs.map +1 -1
- package/dist/cjs/lib/takeLast.cjs +2 -4
- package/dist/cjs/lib/takeLast.cjs.map +1 -1
- package/dist/cjs/lib/tee.cjs +1 -2
- package/dist/cjs/lib/tee.cjs.map +1 -1
- package/dist/cjs/lib/unzip.cjs +1 -2
- package/dist/cjs/lib/unzip.cjs.map +1 -1
- package/dist/cjs/lib/zip.cjs +1 -2
- package/dist/cjs/lib/zip.cjs.map +1 -1
- package/dist/esm/{chunk-G5GHKT7C.mjs → chunk-PAWJFY3S.mjs} +1 -1
- package/dist/esm/lib/append.mjs +1 -1
- package/dist/esm/lib/at.mjs +1 -1
- package/dist/esm/lib/average.mjs +1 -1
- package/dist/esm/lib/chain.mjs +1 -1
- package/dist/esm/lib/chunk.mjs +1 -1
- package/dist/esm/lib/compact.mjs +1 -1
- package/dist/esm/lib/compress.mjs +1 -1
- package/dist/esm/lib/contains.mjs +2 -3
- package/dist/esm/lib/contains.mjs.map +1 -1
- package/dist/esm/lib/count.mjs +1 -1
- package/dist/esm/lib/cycle.mjs +1 -1
- package/dist/esm/lib/difference.mjs +1 -1
- package/dist/esm/lib/drop.mjs +4 -7
- package/dist/esm/lib/drop.mjs.map +1 -1
- package/dist/esm/lib/dropLast.mjs +2 -3
- package/dist/esm/lib/dropLast.mjs.map +1 -1
- package/dist/esm/lib/dropWhile.mjs +1 -1
- package/dist/esm/lib/empty.mjs +1 -1
- package/dist/esm/lib/enumerate.mjs +1 -1
- package/dist/esm/lib/every.mjs +2 -3
- package/dist/esm/lib/every.mjs.map +1 -1
- package/dist/esm/lib/filter.mjs +2 -3
- package/dist/esm/lib/filter.mjs.map +1 -1
- package/dist/esm/lib/find.mjs +1 -1
- package/dist/esm/lib/findIndex.mjs +1 -1
- package/dist/esm/lib/first.mjs +1 -1
- package/dist/esm/lib/flat.mjs +1 -1
- package/dist/esm/lib/flatMap.mjs +1 -1
- package/dist/esm/lib/forEach.mjs +1 -1
- package/dist/esm/lib/from.mjs +1 -1
- package/dist/esm/lib/indexOf.mjs +1 -1
- package/dist/esm/lib/intersect.mjs +1 -1
- package/dist/esm/lib/isEmpty.mjs +1 -1
- package/dist/esm/lib/last.mjs +1 -1
- package/dist/esm/lib/map.mjs +1 -1
- package/dist/esm/lib/max.mjs +2 -3
- package/dist/esm/lib/max.mjs.map +1 -1
- package/dist/esm/lib/min.mjs +2 -3
- package/dist/esm/lib/min.mjs.map +1 -1
- package/dist/esm/lib/partition.mjs +1 -1
- package/dist/esm/lib/peekable.mjs +1 -1
- package/dist/esm/lib/prepend.mjs +1 -1
- package/dist/esm/lib/product.mjs +1 -1
- package/dist/esm/lib/range.mjs +1 -1
- package/dist/esm/lib/reduce.mjs +2 -3
- package/dist/esm/lib/reduce.mjs.map +1 -1
- package/dist/esm/lib/repeat.mjs +1 -1
- package/dist/esm/lib/reverse.mjs +1 -1
- package/dist/esm/lib/shared/_assertFunction.mjs +1 -1
- package/dist/esm/lib/shared/_assertNotNegative.mjs +1 -1
- package/dist/esm/lib/shared/_assertPositive.mjs +1 -1
- package/dist/esm/lib/shared/_makeIterableIterator.mjs +1 -1
- package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs +4 -7
- package/dist/esm/lib/shared/_toIntegerOrInfinityOrThrow.mjs.map +1 -1
- package/dist/esm/lib/shared/_toIntegerOrThrow.mjs +4 -7
- package/dist/esm/lib/shared/_toIntegerOrThrow.mjs.map +1 -1
- package/dist/esm/lib/shared/_toNumberOrThrow.mjs +1 -1
- package/dist/esm/lib/slice.mjs +2 -3
- package/dist/esm/lib/slice.mjs.map +1 -1
- package/dist/esm/lib/some.mjs +1 -1
- package/dist/esm/lib/sorted.mjs +1 -1
- package/dist/esm/lib/starMap.mjs +1 -1
- package/dist/esm/lib/sum.mjs +1 -1
- package/dist/esm/lib/take.mjs +2 -3
- package/dist/esm/lib/take.mjs.map +1 -1
- package/dist/esm/lib/takeLast.mjs +3 -5
- package/dist/esm/lib/takeLast.mjs.map +1 -1
- package/dist/esm/lib/tee.mjs +2 -3
- package/dist/esm/lib/tee.mjs.map +1 -1
- package/dist/esm/lib/toArray.mjs +1 -1
- package/dist/esm/lib/toIterableIterator.mjs +1 -1
- package/dist/esm/lib/union.mjs +1 -1
- package/dist/esm/lib/unique.mjs +1 -1
- package/dist/esm/lib/unzip.mjs +2 -3
- package/dist/esm/lib/unzip.mjs.map +1 -1
- package/dist/esm/lib/zip.mjs +2 -3
- package/dist/esm/lib/zip.mjs.map +1 -1
- package/dist/iife/index.global.js +23 -46
- package/dist/iife/index.global.js.map +1 -1
- package/package.json +5 -5
- /package/dist/esm/{chunk-G5GHKT7C.mjs.map → chunk-PAWJFY3S.mjs.map} +0 -0
|
@@ -6,8 +6,7 @@ var __defProp = Object.defineProperty;
|
|
|
6
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
7
|
function contains(iterable, value) {
|
|
8
8
|
for (const element of toIterableIterator_cjs.toIterableIterator(iterable)) {
|
|
9
|
-
if (element === value)
|
|
10
|
-
return true;
|
|
9
|
+
if (element === value) return true;
|
|
11
10
|
}
|
|
12
11
|
return false;
|
|
13
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/contains.ts"],"names":[],"mappings":";;;;AACA,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA6B;AACnH,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,QAAI,YAAY
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/contains.ts"],"names":[],"mappings":";;;;AACA,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA6B;AACnH,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,QAAI,YAAY,MAAO,QAAO;AAAA,EAC/B;AAEA,SAAO;AACR;AANgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds the element, returning `true` if it's found and `false` otherwise.\n *\n * @param iterable The iterator in which to locate a value.\n * @param value The value to locate in the iterator.\n * @returns `true` if the value is found in the iterator; otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { contains } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(contains(iterable, 3));\n * // Output: true\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function contains<const ElementType>(iterable: IterableResolvable<ElementType>, value: ElementType): boolean {\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tif (element === value) return true;\n\t}\n\n\treturn false;\n}\n"]}
|
package/dist/cjs/lib/drop.cjs
CHANGED
|
@@ -10,13 +10,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
10
10
|
function drop(iterable, count) {
|
|
11
11
|
count = _assertNotNegative_cjs.assertNotNegative(_toIntegerOrInfinityOrThrow_cjs.toIntegerOrInfinityOrThrow(count), count);
|
|
12
12
|
const resolvedIterable = toIterableIterator_cjs.toIterableIterator(iterable);
|
|
13
|
-
if (count === 0)
|
|
14
|
-
|
|
15
|
-
if (count === Number.POSITIVE_INFINITY)
|
|
16
|
-
return empty_cjs.empty();
|
|
13
|
+
if (count === 0) return resolvedIterable;
|
|
14
|
+
if (count === Number.POSITIVE_INFINITY) return empty_cjs.empty();
|
|
17
15
|
for (let i = 0; i < count; i++) {
|
|
18
|
-
if (resolvedIterable.next().done)
|
|
19
|
-
break;
|
|
16
|
+
if (resolvedIterable.next().done) break;
|
|
20
17
|
}
|
|
21
18
|
return resolvedIterable;
|
|
22
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/drop.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,0BAA0B;AAkB5B,SAAS,KAAwB,UAA2C,OAA8C;AAChI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,mBAAmB,mBAAmB,QAAQ;AAGpD,MAAI,UAAU
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/drop.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,0BAA0B;AAkB5B,SAAS,KAAwB,UAA2C,OAA8C;AAChI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,mBAAmB,mBAAmB,QAAQ;AAGpD,MAAI,UAAU,EAAG,QAAO;AAExB,MAAI,UAAU,OAAO,kBAAmB,QAAO,MAAM;AAErD,WAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC/B,QAAI,iBAAiB,KAAK,EAAE,KAAM;AAAA,EACnC;AAEA,SAAO;AACR;AAdgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable by `count` elements from the iterable.\n *\n * @param iterable An iterator to drop values from.\n * @param count The number of elements to drop from the start of the iteration.\n * @returns An iterator that contains the elements of the provided iterator, except for the first `count` elements.\n *\n * @example\n * ```typescript\n * import { drop } from '@sapphire/iterator-utilities';\n *\n * const iterable = drop(iterator, 2);\n * console.log([...iterable]);\n * // Output: [3, 4, 5]\n * ```\n */\nexport function drop<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tconst resolvedIterable = toIterableIterator(iterable);\n\n\t// If the count is 0, return the original iterable:\n\tif (count === 0) return resolvedIterable;\n\t// If the count is infinite, return an empty iterable:\n\tif (count === Number.POSITIVE_INFINITY) return empty();\n\n\tfor (let i = 0; i < count; i++) {\n\t\tif (resolvedIterable.next().done) break;\n\t}\n\n\treturn resolvedIterable;\n}\n\nexport { drop as skip };\n"]}
|
|
@@ -11,8 +11,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
11
11
|
function dropLast(iterable, count) {
|
|
12
12
|
count = _assertNotNegative_cjs.assertNotNegative(_toIntegerOrInfinityOrThrow_cjs.toIntegerOrInfinityOrThrow(count), count);
|
|
13
13
|
const array = toArray_cjs.toArray(iterable);
|
|
14
|
-
if (array.length <= count)
|
|
15
|
-
return empty_cjs.empty();
|
|
14
|
+
if (array.length <= count) return empty_cjs.empty();
|
|
16
15
|
return take_cjs.take(array.values(), array.length - count);
|
|
17
16
|
}
|
|
18
17
|
__name(dropLast, "dropLast");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/dropLast.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,YAAY;AACrB,SAAS,eAAe;AAsBjB,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,MAAM,UAAU
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/dropLast.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,YAAY;AACrB,SAAS,eAAe;AAsBjB,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,MAAM,UAAU,MAAO,QAAO,MAAM;AACxC,SAAO,KAAK,MAAM,OAAO,GAAG,MAAM,SAAS,KAAK;AACjD;AALgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { take } from './take';\nimport { toArray } from './toArray';\n\n/**\n * Consumes the iterable, creating a new iterator without the last `count` elements from the iterable.\n *\n * @param iterable An iterator to drop values from.\n * @param count The number of values to drop from the end of the iterator.\n * @returns An iterator that contains the elements of the provided iterator, except for the last `count` elements.\n *\n * @example\n * ```typescript\n * import { dropLast } from '@sapphire/iterator-utilities';\n *\n * const iterable = dropLast([1, 2, 3, 4, 5], 2);\n * console.log([...iterable]);\n * // Output: [1, 2, 3]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function dropLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tconst array = toArray(iterable);\n\tif (array.length <= count) return empty();\n\treturn take(array.values(), array.length - count);\n}\n\nexport { dropLast as skipLast };\n"]}
|
package/dist/cjs/lib/every.cjs
CHANGED
|
@@ -9,8 +9,7 @@ function every(iterable, callbackFn) {
|
|
|
9
9
|
callbackFn = _assertFunction_cjs.assertFunction(callbackFn);
|
|
10
10
|
let index = 0;
|
|
11
11
|
for (const value of toIterableIterator_cjs.toIterableIterator(iterable)) {
|
|
12
|
-
if (!callbackFn(value, index++))
|
|
13
|
-
return false;
|
|
12
|
+
if (!callbackFn(value, index++)) return false;
|
|
14
13
|
}
|
|
15
14
|
return true;
|
|
16
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/every.ts"],"names":[],"mappings":";;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAiC5B,SAAS,MAAyB,UAA2C,YAA8D;AACjJ,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,CAAC,WAAW,OAAO,OAAO
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/every.ts"],"names":[],"mappings":";;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAiC5B,SAAS,MAAyB,UAA2C,YAA8D;AACjJ,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,CAAC,WAAW,OAAO,OAAO,EAAG,QAAO;AAAA,EACzC;AAEA,SAAO;AACR;AATgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Tests whether all elements in the iterable pass the test implemented by the provided function.\n *\n * @param iterable The iterator to check.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to indicate the element passes the test, and a falsy value otherwise.\n * @returns `true` if callbackFn returns a truthy value for every element. Otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { every } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(every(iterable, (value) => value < 10));\n * // Output: true\n *\n * console.log(every(iterable, (value) => value < 3));\n * // Output: false\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function every<const ElementType, const FilteredType extends ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => element is FilteredType\n): iterable is IterableIterator<FilteredType>;\nexport function every<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): boolean;\nexport function every<const ElementType>(iterable: IterableResolvable<ElementType>, callbackFn: (element: ElementType, index: number) => boolean) {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tif (!callbackFn(value, index++)) return false;\n\t}\n\n\treturn true;\n}\n"]}
|
package/dist/cjs/lib/filter.cjs
CHANGED
|
@@ -9,8 +9,7 @@ function* filter(iterable, callbackFn) {
|
|
|
9
9
|
callbackFn = _assertFunction_cjs.assertFunction(callbackFn);
|
|
10
10
|
let index = 0;
|
|
11
11
|
for (const value of toIterableIterator_cjs.toIterableIterator(iterable)) {
|
|
12
|
-
if (callbackFn(value, index++))
|
|
13
|
-
yield value;
|
|
12
|
+
if (callbackFn(value, index++)) yield value;
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
15
|
__name(filter, "filter");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/filter.ts"],"names":[],"mappings":";;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA0B5B,UAAU,OAChB,UACA,YACgC;AAChC,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,WAAW,OAAO,OAAO
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/filter.ts"],"names":[],"mappings":";;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA0B5B,UAAU,OAChB,UACA,YACgC;AAChC,eAAa,eAAe,UAAU;AAEtC,MAAI,QAAQ;AACZ,aAAW,SAAS,mBAAmB,QAAQ,GAAG;AACjD,QAAI,WAAW,OAAO,OAAO,EAAG,OAAM;AAAA,EACvC;AACD;AAViB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { assertFunction } from './shared/_assertFunction';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an iterable with the elements that pass the test implemented by the provided function.\n *\n * @param iterable The iterator to filter.\n * @param callbackFn A function to execute for each element produced by the iterator. It should return a truthy value to make the element yielded by the iterator helper, and a falsy value otherwise.\n * @returns An iterator that produces elements from the given iterator that satisfy the specified test.\n *\n * @example\n * ```typescript\n * import { filter } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...filter(iterable, (value) => value % 2 === 0)]);\n * // Output: [2, 4]\n * ```\n */\nexport function filter<const ElementType, const FilteredType extends ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => element is FilteredType\n): IterableIterator<FilteredType>;\nexport function filter<const ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): IterableIterator<ElementType>;\nexport function* filter<ElementType>(\n\titerable: IterableResolvable<ElementType>,\n\tcallbackFn: (element: ElementType, index: number) => boolean\n): IterableIterator<ElementType> {\n\tcallbackFn = assertFunction(callbackFn);\n\n\tlet index = 0;\n\tfor (const value of toIterableIterator(iterable)) {\n\t\tif (callbackFn(value, index++)) yield value;\n\t}\n}\n\nexport { filter as takeWhile };\n"]}
|
package/dist/cjs/lib/max.cjs
CHANGED
|
@@ -8,8 +8,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
8
8
|
function max(iterable) {
|
|
9
9
|
let max2 = null;
|
|
10
10
|
for (const value of map_cjs.map(iterable, _toNumberOrThrow_cjs.toNumberOrThrow)) {
|
|
11
|
-
if (max2 === null || value > max2)
|
|
12
|
-
max2 = value;
|
|
11
|
+
if (max2 === null || value > max2) max2 = value;
|
|
13
12
|
}
|
|
14
13
|
return max2;
|
|
15
14
|
}
|
package/dist/cjs/lib/max.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/max.ts"],"names":["max"],"mappings":";;;;AACA,SAAS,WAAW;AACpB,SAAS,uBAA8C;AAqBhD,SAAS,IAAI,UAA+D;AAClF,MAAIA,OAAqB;AACzB,aAAW,SAAS,IAAI,UAAU,eAAe,GAAG;AACnD,QAAIA,SAAQ,QAAQ,QAAQA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/max.ts"],"names":["max"],"mappings":";;;;AACA,SAAS,WAAW;AACpB,SAAS,uBAA8C;AAqBhD,SAAS,IAAI,UAA+D;AAClF,MAAIA,OAAqB;AACzB,aAAW,SAAS,IAAI,UAAU,eAAe,GAAG;AACnD,QAAIA,SAAQ,QAAQ,QAAQA,KAAK,CAAAA,OAAM;AAAA,EACxC;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 highest number element. If the iterable is empty, or contains only non-number values, it returns `null`.\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(iterable: IterableResolvable<NumberResolvable>): number | null {\n\tlet max: number | null = null;\n\tfor (const value of map(iterable, toNumberOrThrow)) {\n\t\tif (max === null || value > max) max = value;\n\t}\n\n\treturn max;\n}\n"]}
|
package/dist/cjs/lib/min.cjs
CHANGED
|
@@ -8,8 +8,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
8
8
|
function min(iterable) {
|
|
9
9
|
let min2 = null;
|
|
10
10
|
for (const value of map_cjs.map(iterable, _toNumberOrThrow_cjs.toNumberOrThrow)) {
|
|
11
|
-
if (min2 === null || value < min2)
|
|
12
|
-
min2 = value;
|
|
11
|
+
if (min2 === null || value < min2) min2 = value;
|
|
13
12
|
}
|
|
14
13
|
return min2;
|
|
15
14
|
}
|
package/dist/cjs/lib/min.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/min.ts"],"names":["min"],"mappings":";;;;AACA,SAAS,WAAW;AACpB,SAAS,uBAA8C;AAqBhD,SAAS,IAAI,UAA+D;AAClF,MAAIA,OAAqB;AACzB,aAAW,SAAS,IAAI,UAAU,eAAe,GAAG;AACnD,QAAIA,SAAQ,QAAQ,QAAQA
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/min.ts"],"names":["min"],"mappings":";;;;AACA,SAAS,WAAW;AACpB,SAAS,uBAA8C;AAqBhD,SAAS,IAAI,UAA+D;AAClF,MAAIA,OAAqB;AACzB,aAAW,SAAS,IAAI,UAAU,eAAe,GAAG;AACnD,QAAIA,SAAQ,QAAQ,QAAQA,KAAK,CAAAA,OAAM;AAAA,EACxC;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 lowest number element. If the iterable is empty, or contains only non-number values, it returns `null`.\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(iterable: IterableResolvable<NumberResolvable>): number | null {\n\tlet min: number | null = null;\n\tfor (const value of map(iterable, toNumberOrThrow)) {\n\t\tif (min === null || value < min) min = value;\n\t}\n\n\treturn min;\n}\n"]}
|
package/dist/cjs/lib/reduce.cjs
CHANGED
|
@@ -12,8 +12,7 @@ function reduce(iterable, callbackFn, initialValue) {
|
|
|
12
12
|
const resolvedIterable = toIterableIterator_cjs.toIterableIterator(iterable);
|
|
13
13
|
if (arguments.length < 3) {
|
|
14
14
|
const firstValue = resolvedIterable.next();
|
|
15
|
-
if (firstValue.done)
|
|
16
|
-
throw new TypeError("Reduce of empty iterator with no initial value");
|
|
15
|
+
if (firstValue.done) throw new TypeError("Reduce of empty iterator with no initial value");
|
|
17
16
|
index = 1;
|
|
18
17
|
accumulator = firstValue.value;
|
|
19
18
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/reduce.ts"],"names":[],"mappings":";;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA8B5B,SAAS,OACf,UACA,YACA,cACa;AACb,eAAa,eAAe,UAAU;AAEtC,MAAI;AACJ,MAAI;AACJ,QAAM,mBAAmB,mBAAmB,QAAQ;AACpD,MAAI,UAAU,SAAS,GAAG;AACzB,UAAM,aAAa,iBAAiB,KAAK;AACzC,QAAI,WAAW
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/reduce.ts"],"names":[],"mappings":";;;;AACA,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AA8B5B,SAAS,OACf,UACA,YACA,cACa;AACb,eAAa,eAAe,UAAU;AAEtC,MAAI;AACJ,MAAI;AACJ,QAAM,mBAAmB,mBAAmB,QAAQ;AACpD,MAAI,UAAU,SAAS,GAAG;AACzB,UAAM,aAAa,iBAAiB,KAAK;AACzC,QAAI,WAAW,KAAM,OAAM,IAAI,UAAU,gDAAgD;AAEzF,YAAQ;AACR,kBAAc,WAAW;AAAA,EAC1B,OAAO;AACN,YAAQ;AACR,kBAAc;AAAA,EACf;AAEA,aAAW,SAAS,kBAAkB;AACrC,kBAAc,WAAW,aAAa,OAAO,OAAO;AAAA,EACrD;AAEA,SAAO;AACR;AA1BgB","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"]}
|
|
@@ -6,12 +6,9 @@ var __defProp = Object.defineProperty;
|
|
|
6
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
7
|
function toIntegerOrInfinityOrThrow(value) {
|
|
8
8
|
const number = _toNumberOrThrow_cjs.toNumberOrThrow(value);
|
|
9
|
-
if (Number.isNaN(number) || number === 0)
|
|
10
|
-
|
|
11
|
-
if (number === Number.
|
|
12
|
-
return Number.POSITIVE_INFINITY;
|
|
13
|
-
if (number === Number.NEGATIVE_INFINITY)
|
|
14
|
-
return Number.NEGATIVE_INFINITY;
|
|
9
|
+
if (Number.isNaN(number) || number === 0) return 0;
|
|
10
|
+
if (number === Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
|
|
11
|
+
if (number === Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;
|
|
15
12
|
return Math.trunc(number);
|
|
16
13
|
}
|
|
17
14
|
__name(toIntegerOrInfinityOrThrow, "toIntegerOrInfinityOrThrow");
|
|
@@ -1 +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
|
|
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,EAAG,QAAO;AACjD,MAAI,WAAW,OAAO,kBAAmB,QAAO,OAAO;AACvD,MAAI,WAAW,OAAO,kBAAmB,QAAO,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"]}
|
|
@@ -6,12 +6,9 @@ var __defProp = Object.defineProperty;
|
|
|
6
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
7
|
function toIntegerOrThrow(value) {
|
|
8
8
|
const number = _toNumberOrThrow_cjs.toNumberOrThrow(value);
|
|
9
|
-
if (Number.isNaN(number) || number === 0)
|
|
10
|
-
|
|
11
|
-
if (number === Number.
|
|
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");
|
|
9
|
+
if (Number.isNaN(number) || number === 0) return 0;
|
|
10
|
+
if (number === Number.POSITIVE_INFINITY) throw new RangeError("+Infinity cannot be represented as an integer");
|
|
11
|
+
if (number === Number.NEGATIVE_INFINITY) throw new RangeError("-Infinity cannot be represented as an integer");
|
|
15
12
|
return Math.trunc(number);
|
|
16
13
|
}
|
|
17
14
|
__name(toIntegerOrThrow, "toIntegerOrThrow");
|
|
@@ -1 +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
|
|
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,EAAG,QAAO;AACjD,MAAI,WAAW,OAAO,kBAAmB,OAAM,IAAI,WAAW,+CAA+C;AAC7G,MAAI,WAAW,OAAO,kBAAmB,OAAM,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"]}
|
package/dist/cjs/lib/slice.cjs
CHANGED
|
@@ -33,8 +33,7 @@ function slice(iterable, start, end) {
|
|
|
33
33
|
}
|
|
34
34
|
return take_cjs.take(takeLast_cjs.takeLast(iterable, -start), end - start);
|
|
35
35
|
}
|
|
36
|
-
if (start >= end)
|
|
37
|
-
return empty_cjs.empty();
|
|
36
|
+
if (start >= end) return empty_cjs.empty();
|
|
38
37
|
return end === Number.POSITIVE_INFINITY ? drop_cjs.drop(iterable, start) : take_cjs.take(drop_cjs.drop(iterable, start), end - start);
|
|
39
38
|
}
|
|
40
39
|
__name(slice, "slice");
|
|
@@ -1 +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
|
|
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,IAAK,QAAO,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"]}
|
package/dist/cjs/lib/take.cjs
CHANGED
|
@@ -10,8 +10,7 @@ var __defProp = Object.defineProperty;
|
|
|
10
10
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
11
11
|
function take(iterable, count) {
|
|
12
12
|
count = _assertNotNegative_cjs.assertNotNegative(_toIntegerOrInfinityOrThrow_cjs.toIntegerOrInfinityOrThrow(count), count);
|
|
13
|
-
if (count === 0)
|
|
14
|
-
return empty_cjs.empty();
|
|
13
|
+
if (count === 0) return empty_cjs.empty();
|
|
15
14
|
let i = 0;
|
|
16
15
|
const resolvedIterable = from_cjs.from(iterable);
|
|
17
16
|
return _makeIterableIterator_cjs.makeIterableIterator(
|
|
@@ -1 +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
|
|
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,EAAG,QAAO,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"]}
|
|
@@ -11,10 +11,8 @@ var __defProp = Object.defineProperty;
|
|
|
11
11
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
12
|
function takeLast(iterable, count) {
|
|
13
13
|
count = _assertNotNegative_cjs.assertNotNegative(_toIntegerOrInfinityOrThrow_cjs.toIntegerOrInfinityOrThrow(count), count);
|
|
14
|
-
if (count === 0)
|
|
15
|
-
|
|
16
|
-
if (count === Number.POSITIVE_INFINITY)
|
|
17
|
-
return toIterableIterator_cjs.toIterableIterator(iterable);
|
|
14
|
+
if (count === 0) return empty_cjs.empty();
|
|
15
|
+
if (count === Number.POSITIVE_INFINITY) return toIterableIterator_cjs.toIterableIterator(iterable);
|
|
18
16
|
const array = toArray_cjs.toArray(iterable);
|
|
19
17
|
let i = Math.max(0, array.length - count);
|
|
20
18
|
return _makeIterableIterator_cjs.makeIterableIterator(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/takeLast.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,kCAAkC;AAC3C,SAAS,eAAe;AACxB,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,MAAI,UAAU
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/takeLast.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,kCAAkC;AAC3C,SAAS,eAAe;AACxB,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,MAAI,UAAU,EAAG,QAAO,MAAM;AAC9B,MAAI,UAAU,OAAO,kBAAmB,QAAO,mBAAmB,QAAQ;AAE1E,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,IAAI,KAAK,IAAI,GAAG,MAAM,SAAS,KAAK;AACxC,SAAO,qBAAkC,MAAM;AAC9C,QAAI,KAAK,MAAM,QAAQ;AACtB,aAAO,EAAE,MAAM,MAAM,OAAO,OAAU;AAAA,IACvC;AAEA,WAAO,EAAE,MAAM,OAAO,OAAO,MAAM,GAAG,EAAE;AAAA,EACzC,CAAC;AACF;AAdgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { toArray } from './toArray';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Consumes the iterable and returns a new iterable with the last `count` elements.\n *\n * @param iterable An iterator to take values from.\n * @param count The number of values to take from the end of the iterator.\n * @returns An iterator that contains the last `count` elements of the provided iterator.\n *\n * @example\n * ```typescript\n * import { takeLast } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log([...takeLast(iterable, 2)]);\n * // Output: [4, 5]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function takeLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tif (count === 0) return empty();\n\tif (count === Number.POSITIVE_INFINITY) return toIterableIterator(iterable);\n\n\tconst array = toArray(iterable);\n\tlet i = Math.max(0, array.length - count);\n\treturn makeIterableIterator<ElementType>(() => {\n\t\tif (i >= array.length) {\n\t\t\treturn { done: true, value: undefined };\n\t\t}\n\n\t\treturn { done: false, value: array[i++] };\n\t});\n}\n"]}
|
package/dist/cjs/lib/tee.cjs
CHANGED
|
@@ -11,8 +11,7 @@ var __defProp = Object.defineProperty;
|
|
|
11
11
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
12
|
function tee(iterable, count) {
|
|
13
13
|
count = _assertNotNegative_cjs.assertNotNegative(_toIntegerOrThrow_cjs.toIntegerOrThrow(count), count);
|
|
14
|
-
if (count === 0)
|
|
15
|
-
return [];
|
|
14
|
+
if (count === 0) return [];
|
|
16
15
|
const entries = [];
|
|
17
16
|
const indexes = toArray_cjs.toArray(repeat_cjs.repeat(0, count));
|
|
18
17
|
const resolvedIterable = from_cjs.from(iterable);
|
package/dist/cjs/lib/tee.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/tee.ts"],"names":["iterable"],"mappings":";;;;AAAA,SAAS,YAAqC;AAC9C,SAAS,cAAc;AACvB,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,eAAe;AAsBjB,SAAS,IAAuB,UAA2C,OAAgD;AACjI,UAAQ,kBAAkB,iBAAiB,KAAK,GAAG,KAAK;AACxD,MAAI,UAAU
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/tee.ts"],"names":["iterable"],"mappings":";;;;AAAA,SAAS,YAAqC;AAC9C,SAAS,cAAc;AACvB,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,eAAe;AAsBjB,SAAS,IAAuB,UAA2C,OAAgD;AACjI,UAAQ,kBAAkB,iBAAiB,KAAK,GAAG,KAAK;AACxD,MAAI,UAAU,EAAG,QAAO,CAAC;AAEzB,QAAM,UAAU,CAAC;AACjB,QAAM,UAAU,QAAQ,OAAO,GAAG,KAAK,CAAC;AACxC,QAAM,mBAAmB,KAAK,QAAQ;AAEtC,QAAM,YAAY,CAAC;AACnB,WAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC/B,UAAMA,YAAW,qBAAkC,MAAM;AACxD,UAAI,QAAQ,CAAC,KAAK,QAAQ,QAAQ;AACjC,cAAM,SAAS,iBAAiB,KAAK;AACrC,YAAI,OAAO,MAAM;AAChB,iBAAO,EAAE,MAAM,MAAM,OAAO,OAAU;AAAA,QACvC;AAEA,gBAAQ,KAAK,OAAO,KAAK;AAAA,MAC1B;AAEA,aAAO,EAAE,MAAM,OAAO,OAAO,QAAQ,QAAQ,CAAC,GAAG,EAAE;AAAA,IACpD,CAAC;AAED,cAAU,KAAKA,SAAQ;AAAA,EACxB;AAEA,SAAO;AACR;AA3BgB","sourcesContent":["import { from, type IterableResolvable } from './from';\nimport { repeat } from './repeat';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { makeIterableIterator } from './shared/_makeIterableIterator';\nimport { toIntegerOrThrow } from './shared/_toIntegerOrThrow';\nimport { toArray } from './toArray';\n\n/**\n * Creates `count` independent iterators from the input iterable.\n *\n * @param iterable An iterator to tee.\n * @param count The number of iterators to create.\n * @returns An array of `count` iterators that each yield the same values as the input iterator.\n *\n * @example\n * ```typescript\n * import { tee } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * const [iter1, iter2] = tee(iterable, 2);\n * console.log([...iter1]);\n * // Output: [1, 2, 3, 4, 5]\n *\n * console.log([...iter2]);\n * // Output: [1, 2, 3, 4, 5]\n * ```\n */\nexport function tee<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType>[] {\n\tcount = assertNotNegative(toIntegerOrThrow(count), count);\n\tif (count === 0) return [];\n\n\tconst entries = [] as ElementType[];\n\tconst indexes = toArray(repeat(0, count));\n\tconst resolvedIterable = from(iterable);\n\n\tconst iterables = [] as IterableIterator<ElementType>[];\n\tfor (let i = 0; i < count; i++) {\n\t\tconst iterable = makeIterableIterator<ElementType>(() => {\n\t\t\tif (indexes[i] >= entries.length) {\n\t\t\t\tconst result = resolvedIterable.next();\n\t\t\t\tif (result.done) {\n\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t}\n\n\t\t\t\tentries.push(result.value);\n\t\t\t}\n\n\t\t\treturn { done: false, value: entries[indexes[i]++] };\n\t\t});\n\n\t\titerables.push(iterable);\n\t}\n\n\treturn iterables;\n}\n"]}
|
package/dist/cjs/lib/unzip.cjs
CHANGED
|
@@ -15,8 +15,7 @@ function unzip(iterable) {
|
|
|
15
15
|
}
|
|
16
16
|
const size = firstResult.value.length;
|
|
17
17
|
const results = [];
|
|
18
|
-
for (let i = 0; i < size; i++)
|
|
19
|
-
results.push([firstResult.value[i]]);
|
|
18
|
+
for (let i = 0; i < size; i++) results.push([firstResult.value[i]]);
|
|
20
19
|
for (const entries of resolvedIterable) {
|
|
21
20
|
if (!Array.isArray(entries)) {
|
|
22
21
|
throw new Error("Cannot unzip an iterable that does not yield an array");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/unzip.ts"],"names":[],"mappings":";;;;AACA,SAAS,0BAA0B;AA0B5B,SAAS,MAAgD,UAAuE;AACtI,QAAM,mBAAmB,mBAAmB,QAAQ;AACpD,QAAM,cAAc,iBAAiB,KAAK;AAC1C,MAAI,YAAY,MAAM;AACrB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EACjD;AAEA,MAAI,CAAC,MAAM,QAAQ,YAAY,KAAK,GAAG;AACtC,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAEA,QAAM,OAAO,YAAY,MAAM;AAC/B,QAAM,UAAU,CAAC;AACjB,WAAS,IAAI,GAAG,IAAI,MAAM
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/unzip.ts"],"names":[],"mappings":";;;;AACA,SAAS,0BAA0B;AA0B5B,SAAS,MAAgD,UAAuE;AACtI,QAAM,mBAAmB,mBAAmB,QAAQ;AACpD,QAAM,cAAc,iBAAiB,KAAK;AAC1C,MAAI,YAAY,MAAM;AACrB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EACjD;AAEA,MAAI,CAAC,MAAM,QAAQ,YAAY,KAAK,GAAG;AACtC,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAEA,QAAM,OAAO,YAAY,MAAM;AAC/B,QAAM,UAAU,CAAC;AACjB,WAAS,IAAI,GAAG,IAAI,MAAM,IAAK,SAAQ,KAAK,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC;AAClE,aAAW,WAAW,kBAAkB;AACvC,QAAI,CAAC,MAAM,QAAQ,OAAO,GAAG;AAC5B,YAAM,IAAI,MAAM,uDAAuD;AAAA,IACxE;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC5B,YAAM,IAAI,MAAM,gEAAgE;AAAA,IACjF;AAEA,aAAS,IAAI,GAAG,IAAI,MAAM,KAAK;AAC9B,cAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;AAAA,IAC3B;AAAA,EACD;AAEA,SAAO;AACR;AA7BgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Creates an array for each element of the input iterable, transposing the input iterable. The opposite of {@linkcode zip}.\n *\n * @param iterable An iterable to unzip.\n * @returns An array of iterables that yield the values of the original iterable.\n *\n * @example\n * ```typescript\n * import { unzip } from '@sapphire/iterator-utilities';\n *\n * const iterable = [[1, 'a'], [2, 'b'], [3, 'c']];\n * const [numbers, letters] = unzip(iterable);\n *\n * console.log(numbers);\n * // Output: [1, 2, 3]\n *\n * console.log(letters);\n * // Output: ['a', 'b', 'c']\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterable.\n */\nexport function unzip<const ElementType extends readonly any[]>(iterable: IterableResolvable<ElementType>): UnzipIterable<ElementType> {\n\tconst resolvedIterable = toIterableIterator(iterable);\n\tconst firstResult = resolvedIterable.next();\n\tif (firstResult.done) {\n\t\tthrow new Error('Cannot unzip an empty iterable');\n\t}\n\n\tif (!Array.isArray(firstResult.value)) {\n\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t}\n\n\tconst size = firstResult.value.length;\n\tconst results = [] as ElementType[][];\n\tfor (let i = 0; i < size; i++) results.push([firstResult.value[i]]);\n\tfor (const entries of resolvedIterable) {\n\t\tif (!Array.isArray(entries)) {\n\t\t\tthrow new Error('Cannot unzip an iterable that does not yield an array');\n\t\t}\n\n\t\tif (entries.length !== size) {\n\t\t\tthrow new Error('Cannot unzip an iterable that yields arrays of different sizes');\n\t\t}\n\n\t\tfor (let i = 0; i < size; i++) {\n\t\t\tresults[i].push(entries[i]);\n\t\t}\n\t}\n\n\treturn results as UnzipIterable<ElementType>;\n}\n\nexport type UnzipIterable<ElementType extends readonly any[]> = {\n\t-readonly [P in keyof ElementType]: ElementType[P][];\n};\n"]}
|
package/dist/cjs/lib/zip.cjs
CHANGED
|
@@ -10,8 +10,7 @@ function* zip(...iterables) {
|
|
|
10
10
|
const results = [];
|
|
11
11
|
for (const resolvedIterable of resolvedIterables) {
|
|
12
12
|
const result = resolvedIterable.next();
|
|
13
|
-
if (result.done)
|
|
14
|
-
return;
|
|
13
|
+
if (result.done) return;
|
|
15
14
|
results.push(result.value);
|
|
16
15
|
}
|
|
17
16
|
yield results;
|
package/dist/cjs/lib/zip.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/zip.ts"],"names":[],"mappings":";;;;AAAA,SAAS,YAAqC;AAwBvC,UAAU,OAAmE,WAA+C;AAClI,QAAM,oBAAoB,UAAU,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC;AACpE,SAAO,MAAM;AACZ,UAAM,UAAU,CAAC;AACjB,eAAW,oBAAoB,mBAAmB;AACjD,YAAM,SAAS,iBAAiB,KAAK;AACrC,UAAI,OAAO;
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/zip.ts"],"names":[],"mappings":";;;;AAAA,SAAS,YAAqC;AAwBvC,UAAU,OAAmE,WAA+C;AAClI,QAAM,oBAAoB,UAAU,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC;AACpE,SAAO,MAAM;AACZ,UAAM,UAAU,CAAC;AACjB,eAAW,oBAAoB,mBAAmB;AACjD,YAAM,SAAS,iBAAiB,KAAK;AACrC,UAAI,OAAO,KAAM;AAEjB,cAAQ,KAAK,OAAO,KAAK;AAAA,IAC1B;AAEA,UAAM;AAAA,EACP;AACD;AAbiB","sourcesContent":["import { from, type IterableResolvable } from './from';\n\n/**\n * Creates an iterable with the elements of the input iterables zipped together. The opposite of {@linkcode unzip}.\n *\n * @param iterables The iterables to zip together.\n * @returns A new iterable that yields the next value of each iterable in the list.\n *\n * @example\n * ```typescript\n * import { zip } from '@sapphire/iterator-utilities';\n *\n * const iterable1 = [1, 2, 3];\n * const iterable2 = ['a', 'b', 'c'];\n * const iterable3 = [true, false, true];\n *\n * console.log(zip(iterable1, iterable2, iterable3));\n * // Output: [\n * // \t[1, 'a', true],\n * // \t[2, 'b', false],\n * // \t[3, 'c', true]\n * // ]\n * ```\n */\nexport function* zip<const Iterables extends readonly IterableResolvable<any>[]>(...iterables: Iterables): ZipIterators<Iterables> {\n\tconst resolvedIterables = iterables.map((iterable) => from(iterable));\n\twhile (true) {\n\t\tconst results = [] as any[];\n\t\tfor (const resolvedIterable of resolvedIterables) {\n\t\t\tconst result = resolvedIterable.next();\n\t\t\tif (result.done) return;\n\n\t\t\tresults.push(result.value);\n\t\t}\n\n\t\tyield results as any;\n\t}\n}\n\nexport type ZipIterators<Iterators extends readonly IterableResolvable<any>[]> = IterableIterator<{\n\t-readonly [P in keyof Iterators]: Iterators[P] extends IterableResolvable<infer T> ? T : never;\n}>;\n"]}
|
package/dist/esm/lib/append.mjs
CHANGED
package/dist/esm/lib/at.mjs
CHANGED
package/dist/esm/lib/average.mjs
CHANGED
package/dist/esm/lib/chain.mjs
CHANGED
package/dist/esm/lib/chunk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from '../chunk-
|
|
1
|
+
import { __name } from '../chunk-PAWJFY3S.mjs';
|
|
2
2
|
import { assertPositive } from './shared/_assertPositive.mjs';
|
|
3
3
|
import { toIntegerOrThrow } from './shared/_toIntegerOrThrow.mjs';
|
|
4
4
|
import { toIterableIterator } from './toIterableIterator.mjs';
|
package/dist/esm/lib/compact.mjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { __name } from '../chunk-
|
|
1
|
+
import { __name } from '../chunk-PAWJFY3S.mjs';
|
|
2
2
|
import { toIterableIterator } from './toIterableIterator.mjs';
|
|
3
3
|
|
|
4
4
|
function contains(iterable, value) {
|
|
5
5
|
for (const element of toIterableIterator(iterable)) {
|
|
6
|
-
if (element === value)
|
|
7
|
-
return true;
|
|
6
|
+
if (element === value) return true;
|
|
8
7
|
}
|
|
9
8
|
return false;
|
|
10
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/contains.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA6B;AACnH,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,QAAI,YAAY
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/contains.ts"],"names":[],"mappings":";;;;;AACA,SAAS,0BAA0B;AAsB5B,SAAS,SAA4B,UAA2C,OAA6B;AACnH,aAAW,WAAW,mBAAmB,QAAQ,GAAG;AACnD,QAAI,YAAY,MAAO,QAAO;AAAA,EAC/B;AAEA,SAAO;AACR;AANgB","sourcesContent":["import type { IterableResolvable } from './from';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable until it finds the element, returning `true` if it's found and `false` otherwise.\n *\n * @param iterable The iterator in which to locate a value.\n * @param value The value to locate in the iterator.\n * @returns `true` if the value is found in the iterator; otherwise, `false`.\n *\n * @example\n * ```typescript\n * import { contains } from '@sapphire/iterator-utilities';\n *\n * const iterable = [1, 2, 3, 4, 5];\n * console.log(contains(iterable, 3));\n * // Output: true\n * ```\n *\n * @remarks\n *\n * This function consumes the iterator until the value is found or the iterator is exhausted.\n */\nexport function contains<const ElementType>(iterable: IterableResolvable<ElementType>, value: ElementType): boolean {\n\tfor (const element of toIterableIterator(iterable)) {\n\t\tif (element === value) return true;\n\t}\n\n\treturn false;\n}\n"]}
|
package/dist/esm/lib/count.mjs
CHANGED
package/dist/esm/lib/cycle.mjs
CHANGED
package/dist/esm/lib/drop.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from '../chunk-
|
|
1
|
+
import { __name } from '../chunk-PAWJFY3S.mjs';
|
|
2
2
|
import { empty } from './empty.mjs';
|
|
3
3
|
import { assertNotNegative } from './shared/_assertNotNegative.mjs';
|
|
4
4
|
import { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow.mjs';
|
|
@@ -7,13 +7,10 @@ import { toIterableIterator } from './toIterableIterator.mjs';
|
|
|
7
7
|
function drop(iterable, count) {
|
|
8
8
|
count = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);
|
|
9
9
|
const resolvedIterable = toIterableIterator(iterable);
|
|
10
|
-
if (count === 0)
|
|
11
|
-
|
|
12
|
-
if (count === Number.POSITIVE_INFINITY)
|
|
13
|
-
return empty();
|
|
10
|
+
if (count === 0) return resolvedIterable;
|
|
11
|
+
if (count === Number.POSITIVE_INFINITY) return empty();
|
|
14
12
|
for (let i = 0; i < count; i++) {
|
|
15
|
-
if (resolvedIterable.next().done)
|
|
16
|
-
break;
|
|
13
|
+
if (resolvedIterable.next().done) break;
|
|
17
14
|
}
|
|
18
15
|
return resolvedIterable;
|
|
19
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/drop.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,0BAA0B;AAkB5B,SAAS,KAAwB,UAA2C,OAA8C;AAChI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,mBAAmB,mBAAmB,QAAQ;AAGpD,MAAI,UAAU
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/drop.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,0BAA0B;AAkB5B,SAAS,KAAwB,UAA2C,OAA8C;AAChI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,mBAAmB,mBAAmB,QAAQ;AAGpD,MAAI,UAAU,EAAG,QAAO;AAExB,MAAI,UAAU,OAAO,kBAAmB,QAAO,MAAM;AAErD,WAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC/B,QAAI,iBAAiB,KAAK,EAAE,KAAM;AAAA,EACnC;AAEA,SAAO;AACR;AAdgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { toIterableIterator } from './toIterableIterator';\n\n/**\n * Advances the iterable by `count` elements from the iterable.\n *\n * @param iterable An iterator to drop values from.\n * @param count The number of elements to drop from the start of the iteration.\n * @returns An iterator that contains the elements of the provided iterator, except for the first `count` elements.\n *\n * @example\n * ```typescript\n * import { drop } from '@sapphire/iterator-utilities';\n *\n * const iterable = drop(iterator, 2);\n * console.log([...iterable]);\n * // Output: [3, 4, 5]\n * ```\n */\nexport function drop<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tconst resolvedIterable = toIterableIterator(iterable);\n\n\t// If the count is 0, return the original iterable:\n\tif (count === 0) return resolvedIterable;\n\t// If the count is infinite, return an empty iterable:\n\tif (count === Number.POSITIVE_INFINITY) return empty();\n\n\tfor (let i = 0; i < count; i++) {\n\t\tif (resolvedIterable.next().done) break;\n\t}\n\n\treturn resolvedIterable;\n}\n\nexport { drop as skip };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name } from '../chunk-
|
|
1
|
+
import { __name } from '../chunk-PAWJFY3S.mjs';
|
|
2
2
|
import { empty } from './empty.mjs';
|
|
3
3
|
import { assertNotNegative } from './shared/_assertNotNegative.mjs';
|
|
4
4
|
import { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow.mjs';
|
|
@@ -8,8 +8,7 @@ import { toArray } from './toArray.mjs';
|
|
|
8
8
|
function dropLast(iterable, count) {
|
|
9
9
|
count = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);
|
|
10
10
|
const array = toArray(iterable);
|
|
11
|
-
if (array.length <= count)
|
|
12
|
-
return empty();
|
|
11
|
+
if (array.length <= count) return empty();
|
|
13
12
|
return take(array.values(), array.length - count);
|
|
14
13
|
}
|
|
15
14
|
__name(dropLast, "dropLast");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/dropLast.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,YAAY;AACrB,SAAS,eAAe;AAsBjB,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,MAAM,UAAU
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/dropLast.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AAEtB,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,YAAY;AACrB,SAAS,eAAe;AAsBjB,SAAS,SAA4B,UAA2C,OAA8C;AACpI,UAAQ,kBAAkB,2BAA2B,KAAK,GAAG,KAAK;AAClE,QAAM,QAAQ,QAAQ,QAAQ;AAC9B,MAAI,MAAM,UAAU,MAAO,QAAO,MAAM;AACxC,SAAO,KAAK,MAAM,OAAO,GAAG,MAAM,SAAS,KAAK;AACjD;AALgB","sourcesContent":["import { empty } from './empty';\nimport type { IterableResolvable } from './from';\nimport { assertNotNegative } from './shared/_assertNotNegative';\nimport { toIntegerOrInfinityOrThrow } from './shared/_toIntegerOrInfinityOrThrow';\nimport { take } from './take';\nimport { toArray } from './toArray';\n\n/**\n * Consumes the iterable, creating a new iterator without the last `count` elements from the iterable.\n *\n * @param iterable An iterator to drop values from.\n * @param count The number of values to drop from the end of the iterator.\n * @returns An iterator that contains the elements of the provided iterator, except for the last `count` elements.\n *\n * @example\n * ```typescript\n * import { dropLast } from '@sapphire/iterator-utilities';\n *\n * const iterable = dropLast([1, 2, 3, 4, 5], 2);\n * console.log([...iterable]);\n * // Output: [1, 2, 3]\n * ```\n *\n * @remarks\n *\n * This function consumes the entire iterator.\n */\nexport function dropLast<const ElementType>(iterable: IterableResolvable<ElementType>, count: number): IterableIterator<ElementType> {\n\tcount = assertNotNegative(toIntegerOrInfinityOrThrow(count), count);\n\tconst array = toArray(iterable);\n\tif (array.length <= count) return empty();\n\treturn take(array.values(), array.length - count);\n}\n\nexport { dropLast as skipLast };\n"]}
|