iterable-linq-utility 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +93 -8
- package/dist/index.d.ts +93 -8
- package/dist/iterable-linq-utility.js +141 -94
- package/dist/iterable-linq-utility.umd.cjs +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -241,7 +241,9 @@ declare namespace Functions {
|
|
|
241
241
|
range,
|
|
242
242
|
reduce,
|
|
243
243
|
repeat_2 as repeat,
|
|
244
|
+
skip,
|
|
244
245
|
some,
|
|
246
|
+
take,
|
|
245
247
|
tap,
|
|
246
248
|
tapChain
|
|
247
249
|
}
|
|
@@ -460,19 +462,57 @@ export declare interface IIterableLinqBase<T> {
|
|
|
460
462
|
* @since 0.0.10
|
|
461
463
|
*/
|
|
462
464
|
reduce<R>(neutralElement: R, reducer: Reducer<T, R>): R;
|
|
465
|
+
/**
|
|
466
|
+
* Lazily skips the first `count` values and yields the rest.
|
|
467
|
+
* @operation `Transformation`
|
|
468
|
+
* @param count - how many values to skip; must be a non-negative integer
|
|
469
|
+
* @returns a lazy, re-runnable chain of the remaining values
|
|
470
|
+
* @throws Error if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
471
|
+
* @example
|
|
472
|
+
* ```ts
|
|
473
|
+
* IterableLinq.from([1, 2, 3, 4, 5]).skip(2).collectToArray(); // [3, 4, 5]
|
|
474
|
+
* ```
|
|
475
|
+
* @since 0.3.0
|
|
476
|
+
*/
|
|
477
|
+
skip(count: number): IIterableLinq<T>;
|
|
478
|
+
/**
|
|
479
|
+
* Runs the chain until its first value, then stops and closes the source.
|
|
480
|
+
* @operation `Action`
|
|
481
|
+
* @returns `true` if the chain contains a value; `false` when it is empty
|
|
482
|
+
* @example
|
|
483
|
+
* ```ts
|
|
484
|
+
* IterableLinq.from([1, 2, 3]).some(); // true
|
|
485
|
+
* ```
|
|
486
|
+
* @since 0.3.0
|
|
487
|
+
*/
|
|
488
|
+
some(): boolean;
|
|
463
489
|
/**
|
|
464
490
|
* Runs the chain until a value satisfies `predicate`, then stops and closes the source.
|
|
465
491
|
* @operation `Action`
|
|
466
|
-
* @param predicate - called with each value and its index
|
|
467
|
-
* @returns `true` if at least one value satisfies `predicate`; `false`
|
|
468
|
-
* @throws Error if `predicate` is not a function
|
|
492
|
+
* @param predicate - called with each value and its index; `undefined` checks only whether a value exists
|
|
493
|
+
* @returns `true` if at least one value satisfies `predicate`; `false` otherwise
|
|
494
|
+
* @throws Error if a provided `predicate` is not a function
|
|
469
495
|
* @example
|
|
470
496
|
* ```ts
|
|
471
497
|
* IterableLinq.from([1, 2, 3]).some(v => v > 2); // true
|
|
472
498
|
* ```
|
|
473
499
|
* @since 0.0.1
|
|
474
500
|
*/
|
|
475
|
-
some(predicate: Predicate<T>): boolean;
|
|
501
|
+
some(predicate: Predicate<T> | undefined): boolean;
|
|
502
|
+
/**
|
|
503
|
+
* Yields the first `count` values, then closes the source.
|
|
504
|
+
* The source is never read past the `count`-th value, so `take` also ends an infinite chain.
|
|
505
|
+
* @operation `Transformation`
|
|
506
|
+
* @param count - how many values to yield; must be a non-negative integer
|
|
507
|
+
* @returns a new chain with at most `count` values
|
|
508
|
+
* @throws Error if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
509
|
+
* @example
|
|
510
|
+
* ```ts
|
|
511
|
+
* IterableLinq.from([1, 2, 3, 4, 5]).take(3).collectToArray(); // [1, 2, 3]
|
|
512
|
+
* ```
|
|
513
|
+
* @since 0.3.0
|
|
514
|
+
*/
|
|
515
|
+
take(count: number): IIterableLinq<T>;
|
|
476
516
|
/**
|
|
477
517
|
* Calls `tapper` on each value as it flows through the chain, without changing it.
|
|
478
518
|
* If `tapper` throws, the source is closed and the error propagates.
|
|
@@ -785,20 +825,65 @@ export declare function repeat<T>(value: T, count: number): IIterableLinq<T>;
|
|
|
785
825
|
*/
|
|
786
826
|
declare function repeat_2<T>(value: T, count: number): Iterable<T>;
|
|
787
827
|
|
|
828
|
+
/**
|
|
829
|
+
* Lazily skips the first `count` values and yields the rest.
|
|
830
|
+
* @operation `Transformation`
|
|
831
|
+
* @param iterable - the source `Iterable`
|
|
832
|
+
* @param count - how many values to skip; must be a non-negative integer
|
|
833
|
+
* @returns a lazy, re-runnable `Iterable` of the remaining values
|
|
834
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
835
|
+
* @example
|
|
836
|
+
* ```ts
|
|
837
|
+
* Array.from(Functions.skip([1, 2, 3, 4, 5], 2)); // [3, 4, 5]
|
|
838
|
+
* ```
|
|
839
|
+
* @since 0.3.0
|
|
840
|
+
*/
|
|
841
|
+
declare function skip<T>(iterable: Iterable<T>, count: number): Iterable<T>;
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* Tells whether `iterable` contains a value; reads one value, then closes the source.
|
|
845
|
+
* @operation `Action`
|
|
846
|
+
* @param iterable - the source `Iterable`
|
|
847
|
+
* @returns `true` if `iterable` contains a value; `false` when it is empty
|
|
848
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`
|
|
849
|
+
* @example
|
|
850
|
+
* ```ts
|
|
851
|
+
* Functions.some([1, 2, 3]); // true
|
|
852
|
+
* ```
|
|
853
|
+
* @since 0.3.0
|
|
854
|
+
*/
|
|
855
|
+
declare function some<T>(iterable: Iterable<T>): boolean;
|
|
856
|
+
|
|
788
857
|
/**
|
|
789
858
|
* Tells whether at least one value satisfies `predicate`; stops and closes the source at the first match.
|
|
790
859
|
* @operation `Action`
|
|
791
860
|
* @param iterable - the source `Iterable`
|
|
792
|
-
* @param predicate - called with each value and its index
|
|
793
|
-
* @returns `true` if a value satisfies `predicate`; `false`
|
|
794
|
-
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if `predicate` is not a function
|
|
861
|
+
* @param predicate - called with each value and its index; `undefined` checks only whether a value exists
|
|
862
|
+
* @returns `true` if a value satisfies `predicate`; `false` otherwise
|
|
863
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if a provided `predicate` is not a function
|
|
795
864
|
* @example
|
|
796
865
|
* ```ts
|
|
797
866
|
* Functions.some([1, 2, 3], v => v > 2); // true
|
|
798
867
|
* ```
|
|
799
868
|
* @since 0.0.10
|
|
800
869
|
*/
|
|
801
|
-
declare function some<T>(iterable: Iterable<T>, predicate: Predicate<T>): boolean;
|
|
870
|
+
declare function some<T>(iterable: Iterable<T>, predicate: Predicate<T> | undefined): boolean;
|
|
871
|
+
|
|
872
|
+
/**
|
|
873
|
+
* Lazily yields the first `count` values, then closes the source.
|
|
874
|
+
* The source is never read past the `count`-th value, so `take` also ends an infinite source.
|
|
875
|
+
* @operation `Transformation`
|
|
876
|
+
* @param iterable - the source `Iterable`
|
|
877
|
+
* @param count - how many values to yield; must be a non-negative integer
|
|
878
|
+
* @returns a lazy, re-runnable `Iterable` of at most `count` values
|
|
879
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
880
|
+
* @example
|
|
881
|
+
* ```ts
|
|
882
|
+
* Array.from(Functions.take([1, 2, 3, 4, 5], 3)); // [1, 2, 3]
|
|
883
|
+
* ```
|
|
884
|
+
* @since 0.3.0
|
|
885
|
+
*/
|
|
886
|
+
declare function take<T>(iterable: Iterable<T>, count: number): Iterable<T>;
|
|
802
887
|
|
|
803
888
|
/**
|
|
804
889
|
* Lazily calls `tapper` on each value as it flows through, without changing it.
|
package/dist/index.d.ts
CHANGED
|
@@ -241,7 +241,9 @@ declare namespace Functions {
|
|
|
241
241
|
range,
|
|
242
242
|
reduce,
|
|
243
243
|
repeat_2 as repeat,
|
|
244
|
+
skip,
|
|
244
245
|
some,
|
|
246
|
+
take,
|
|
245
247
|
tap,
|
|
246
248
|
tapChain
|
|
247
249
|
}
|
|
@@ -460,19 +462,57 @@ export declare interface IIterableLinqBase<T> {
|
|
|
460
462
|
* @since 0.0.10
|
|
461
463
|
*/
|
|
462
464
|
reduce<R>(neutralElement: R, reducer: Reducer<T, R>): R;
|
|
465
|
+
/**
|
|
466
|
+
* Lazily skips the first `count` values and yields the rest.
|
|
467
|
+
* @operation `Transformation`
|
|
468
|
+
* @param count - how many values to skip; must be a non-negative integer
|
|
469
|
+
* @returns a lazy, re-runnable chain of the remaining values
|
|
470
|
+
* @throws Error if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
471
|
+
* @example
|
|
472
|
+
* ```ts
|
|
473
|
+
* IterableLinq.from([1, 2, 3, 4, 5]).skip(2).collectToArray(); // [3, 4, 5]
|
|
474
|
+
* ```
|
|
475
|
+
* @since 0.3.0
|
|
476
|
+
*/
|
|
477
|
+
skip(count: number): IIterableLinq<T>;
|
|
478
|
+
/**
|
|
479
|
+
* Runs the chain until its first value, then stops and closes the source.
|
|
480
|
+
* @operation `Action`
|
|
481
|
+
* @returns `true` if the chain contains a value; `false` when it is empty
|
|
482
|
+
* @example
|
|
483
|
+
* ```ts
|
|
484
|
+
* IterableLinq.from([1, 2, 3]).some(); // true
|
|
485
|
+
* ```
|
|
486
|
+
* @since 0.3.0
|
|
487
|
+
*/
|
|
488
|
+
some(): boolean;
|
|
463
489
|
/**
|
|
464
490
|
* Runs the chain until a value satisfies `predicate`, then stops and closes the source.
|
|
465
491
|
* @operation `Action`
|
|
466
|
-
* @param predicate - called with each value and its index
|
|
467
|
-
* @returns `true` if at least one value satisfies `predicate`; `false`
|
|
468
|
-
* @throws Error if `predicate` is not a function
|
|
492
|
+
* @param predicate - called with each value and its index; `undefined` checks only whether a value exists
|
|
493
|
+
* @returns `true` if at least one value satisfies `predicate`; `false` otherwise
|
|
494
|
+
* @throws Error if a provided `predicate` is not a function
|
|
469
495
|
* @example
|
|
470
496
|
* ```ts
|
|
471
497
|
* IterableLinq.from([1, 2, 3]).some(v => v > 2); // true
|
|
472
498
|
* ```
|
|
473
499
|
* @since 0.0.1
|
|
474
500
|
*/
|
|
475
|
-
some(predicate: Predicate<T>): boolean;
|
|
501
|
+
some(predicate: Predicate<T> | undefined): boolean;
|
|
502
|
+
/**
|
|
503
|
+
* Yields the first `count` values, then closes the source.
|
|
504
|
+
* The source is never read past the `count`-th value, so `take` also ends an infinite chain.
|
|
505
|
+
* @operation `Transformation`
|
|
506
|
+
* @param count - how many values to yield; must be a non-negative integer
|
|
507
|
+
* @returns a new chain with at most `count` values
|
|
508
|
+
* @throws Error if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
509
|
+
* @example
|
|
510
|
+
* ```ts
|
|
511
|
+
* IterableLinq.from([1, 2, 3, 4, 5]).take(3).collectToArray(); // [1, 2, 3]
|
|
512
|
+
* ```
|
|
513
|
+
* @since 0.3.0
|
|
514
|
+
*/
|
|
515
|
+
take(count: number): IIterableLinq<T>;
|
|
476
516
|
/**
|
|
477
517
|
* Calls `tapper` on each value as it flows through the chain, without changing it.
|
|
478
518
|
* If `tapper` throws, the source is closed and the error propagates.
|
|
@@ -785,20 +825,65 @@ export declare function repeat<T>(value: T, count: number): IIterableLinq<T>;
|
|
|
785
825
|
*/
|
|
786
826
|
declare function repeat_2<T>(value: T, count: number): Iterable<T>;
|
|
787
827
|
|
|
828
|
+
/**
|
|
829
|
+
* Lazily skips the first `count` values and yields the rest.
|
|
830
|
+
* @operation `Transformation`
|
|
831
|
+
* @param iterable - the source `Iterable`
|
|
832
|
+
* @param count - how many values to skip; must be a non-negative integer
|
|
833
|
+
* @returns a lazy, re-runnable `Iterable` of the remaining values
|
|
834
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
835
|
+
* @example
|
|
836
|
+
* ```ts
|
|
837
|
+
* Array.from(Functions.skip([1, 2, 3, 4, 5], 2)); // [3, 4, 5]
|
|
838
|
+
* ```
|
|
839
|
+
* @since 0.3.0
|
|
840
|
+
*/
|
|
841
|
+
declare function skip<T>(iterable: Iterable<T>, count: number): Iterable<T>;
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* Tells whether `iterable` contains a value; reads one value, then closes the source.
|
|
845
|
+
* @operation `Action`
|
|
846
|
+
* @param iterable - the source `Iterable`
|
|
847
|
+
* @returns `true` if `iterable` contains a value; `false` when it is empty
|
|
848
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`
|
|
849
|
+
* @example
|
|
850
|
+
* ```ts
|
|
851
|
+
* Functions.some([1, 2, 3]); // true
|
|
852
|
+
* ```
|
|
853
|
+
* @since 0.3.0
|
|
854
|
+
*/
|
|
855
|
+
declare function some<T>(iterable: Iterable<T>): boolean;
|
|
856
|
+
|
|
788
857
|
/**
|
|
789
858
|
* Tells whether at least one value satisfies `predicate`; stops and closes the source at the first match.
|
|
790
859
|
* @operation `Action`
|
|
791
860
|
* @param iterable - the source `Iterable`
|
|
792
|
-
* @param predicate - called with each value and its index
|
|
793
|
-
* @returns `true` if a value satisfies `predicate`; `false`
|
|
794
|
-
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if `predicate` is not a function
|
|
861
|
+
* @param predicate - called with each value and its index; `undefined` checks only whether a value exists
|
|
862
|
+
* @returns `true` if a value satisfies `predicate`; `false` otherwise
|
|
863
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if a provided `predicate` is not a function
|
|
795
864
|
* @example
|
|
796
865
|
* ```ts
|
|
797
866
|
* Functions.some([1, 2, 3], v => v > 2); // true
|
|
798
867
|
* ```
|
|
799
868
|
* @since 0.0.10
|
|
800
869
|
*/
|
|
801
|
-
declare function some<T>(iterable: Iterable<T>, predicate: Predicate<T>): boolean;
|
|
870
|
+
declare function some<T>(iterable: Iterable<T>, predicate: Predicate<T> | undefined): boolean;
|
|
871
|
+
|
|
872
|
+
/**
|
|
873
|
+
* Lazily yields the first `count` values, then closes the source.
|
|
874
|
+
* The source is never read past the `count`-th value, so `take` also ends an infinite source.
|
|
875
|
+
* @operation `Transformation`
|
|
876
|
+
* @param iterable - the source `Iterable`
|
|
877
|
+
* @param count - how many values to yield; must be a non-negative integer
|
|
878
|
+
* @returns a lazy, re-runnable `Iterable` of at most `count` values
|
|
879
|
+
* @throws Error if `iterable` is missing or does not implement `[Symbol.iterator]`, or if `count` is negative, not an integer, `NaN` or `Infinity`
|
|
880
|
+
* @example
|
|
881
|
+
* ```ts
|
|
882
|
+
* Array.from(Functions.take([1, 2, 3, 4, 5], 3)); // [1, 2, 3]
|
|
883
|
+
* ```
|
|
884
|
+
* @since 0.3.0
|
|
885
|
+
*/
|
|
886
|
+
declare function take<T>(iterable: Iterable<T>, count: number): Iterable<T>;
|
|
802
887
|
|
|
803
888
|
/**
|
|
804
889
|
* Lazily calls `tapper` on each value as it flows through, without changing it.
|
|
@@ -57,10 +57,10 @@ function c(e) {
|
|
|
57
57
|
function l(e, t) {
|
|
58
58
|
if (!n(e)) throw Error(`The "${t}" function must be provided`);
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function u(e, t) {
|
|
61
61
|
if (!Number.isInteger(e) || e < 0) throw Error(`The "${t}" parameter must be a non-negative integer`);
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function ee(e, t) {
|
|
64
64
|
if (!Number.isFinite(e) || e === 0) throw Error(`The "${t}" parameter must be a finite number other than 0`);
|
|
65
65
|
}
|
|
66
66
|
function te(e, t) {
|
|
@@ -143,9 +143,9 @@ function _() {
|
|
|
143
143
|
//#endregion
|
|
144
144
|
//#region src/functions/filter.ts
|
|
145
145
|
function v(e, t) {
|
|
146
|
-
return c(e), l(t, "predicate"), new p(() => new
|
|
146
|
+
return c(e), l(t, "predicate"), new p(() => new re(e, t));
|
|
147
147
|
}
|
|
148
|
-
var
|
|
148
|
+
var re = class extends m {
|
|
149
149
|
predicate;
|
|
150
150
|
constructor(e, t) {
|
|
151
151
|
super(e), this.predicate = t;
|
|
@@ -165,10 +165,10 @@ var y = class extends m {
|
|
|
165
165
|
};
|
|
166
166
|
//#endregion
|
|
167
167
|
//#region src/functions/flatMap.ts
|
|
168
|
-
function
|
|
169
|
-
return c(e), l(t, "mapper"), new p(() => new
|
|
168
|
+
function y(e, t) {
|
|
169
|
+
return c(e), l(t, "mapper"), new p(() => new ie(e, t));
|
|
170
170
|
}
|
|
171
|
-
var
|
|
171
|
+
var ie = class e extends m {
|
|
172
172
|
mapper;
|
|
173
173
|
static steps = {
|
|
174
174
|
outer: (t) => {
|
|
@@ -229,7 +229,7 @@ var re = class e extends m {
|
|
|
229
229
|
throw e.inner = void 0, e.closeAfterCallbackError(), t;
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
|
-
},
|
|
232
|
+
}, b = class e {
|
|
233
233
|
static instance = e.createFrozen();
|
|
234
234
|
constructor() {}
|
|
235
235
|
static createFrozen() {
|
|
@@ -237,29 +237,29 @@ var re = class e extends m {
|
|
|
237
237
|
return Object.freeze(t), t;
|
|
238
238
|
}
|
|
239
239
|
};
|
|
240
|
-
function
|
|
241
|
-
return
|
|
240
|
+
function x() {
|
|
241
|
+
return b.instance;
|
|
242
242
|
}
|
|
243
243
|
//#endregion
|
|
244
244
|
//#region src/functions/forEach.ts
|
|
245
|
-
function
|
|
245
|
+
function S(e, t) {
|
|
246
246
|
c(e), l(t, "action");
|
|
247
247
|
let n = 0;
|
|
248
248
|
for (let r of e) t(r, n++);
|
|
249
|
-
return
|
|
249
|
+
return x();
|
|
250
250
|
}
|
|
251
|
-
async function
|
|
251
|
+
async function C(e, t) {
|
|
252
252
|
c(e), l(t, "action");
|
|
253
253
|
let n = 0;
|
|
254
254
|
for (let r of e) await t(r, n++);
|
|
255
|
-
return
|
|
255
|
+
return x();
|
|
256
256
|
}
|
|
257
257
|
//#endregion
|
|
258
258
|
//#region src/functions/map.ts
|
|
259
|
-
function
|
|
260
|
-
return c(e), l(t, "mapper"), new p(() => new
|
|
259
|
+
function w(e, t) {
|
|
260
|
+
return c(e), l(t, "mapper"), new p(() => new ae(e, t));
|
|
261
261
|
}
|
|
262
|
-
var
|
|
262
|
+
var ae = class extends m {
|
|
263
263
|
mapper;
|
|
264
264
|
constructor(e, t) {
|
|
265
265
|
super(e), this.mapper = t;
|
|
@@ -278,18 +278,18 @@ var E = class extends m {
|
|
|
278
278
|
};
|
|
279
279
|
//#endregion
|
|
280
280
|
//#region src/collections/linkedList.ts
|
|
281
|
-
function
|
|
281
|
+
function T(e) {
|
|
282
282
|
c(e);
|
|
283
|
-
let t = new
|
|
283
|
+
let t = new oe();
|
|
284
284
|
for (let n of e) t.addLast(n);
|
|
285
285
|
return t;
|
|
286
286
|
}
|
|
287
|
-
var
|
|
287
|
+
var oe = class {
|
|
288
288
|
internalSize = 0;
|
|
289
289
|
head = null;
|
|
290
290
|
tail = null;
|
|
291
291
|
[Symbol.iterator]() {
|
|
292
|
-
return new
|
|
292
|
+
return new se(this.head);
|
|
293
293
|
}
|
|
294
294
|
addFirst(e) {
|
|
295
295
|
let t = {
|
|
@@ -308,7 +308,7 @@ var ie = class {
|
|
|
308
308
|
size() {
|
|
309
309
|
return this.internalSize;
|
|
310
310
|
}
|
|
311
|
-
},
|
|
311
|
+
}, se = class extends f {
|
|
312
312
|
current;
|
|
313
313
|
constructor(e) {
|
|
314
314
|
super(), this.current = e;
|
|
@@ -320,13 +320,13 @@ var ie = class {
|
|
|
320
320
|
};
|
|
321
321
|
//#endregion
|
|
322
322
|
//#region src/functions/materialize.ts
|
|
323
|
-
function
|
|
324
|
-
return c(e), e instanceof
|
|
323
|
+
function E(e) {
|
|
324
|
+
return c(e), e instanceof D ? e : new D(e);
|
|
325
325
|
}
|
|
326
|
-
var
|
|
326
|
+
var D = class {
|
|
327
327
|
source;
|
|
328
328
|
constructor(e) {
|
|
329
|
-
this.source =
|
|
329
|
+
this.source = T(e);
|
|
330
330
|
}
|
|
331
331
|
[Symbol.iterator]() {
|
|
332
332
|
return this.source[Symbol.iterator]();
|
|
@@ -334,29 +334,29 @@ var k = class {
|
|
|
334
334
|
};
|
|
335
335
|
//#endregion
|
|
336
336
|
//#region src/functions/max.ts
|
|
337
|
-
function
|
|
337
|
+
function O(e, t) {
|
|
338
338
|
return c(e), a(e, i(t), 1);
|
|
339
339
|
}
|
|
340
340
|
//#endregion
|
|
341
341
|
//#region src/functions/memoize.ts
|
|
342
|
-
function
|
|
342
|
+
function k() {
|
|
343
343
|
return { allowPartialMemoization: !0 };
|
|
344
344
|
}
|
|
345
|
-
function
|
|
345
|
+
function A(e, t) {
|
|
346
346
|
c(e);
|
|
347
347
|
let n = {
|
|
348
|
-
...
|
|
348
|
+
...k(),
|
|
349
349
|
...t
|
|
350
350
|
}.allowPartialMemoization;
|
|
351
|
-
return e instanceof
|
|
351
|
+
return e instanceof N ? n ? e.changePartialMemoizationBehaviour() : e : e instanceof P ? n ? e : e.changePartialMemoizationBehaviour() : n ? new P(e) : new N(e);
|
|
352
352
|
}
|
|
353
|
-
function
|
|
353
|
+
function j() {
|
|
354
354
|
return {
|
|
355
355
|
values: [],
|
|
356
356
|
finished: !1
|
|
357
357
|
};
|
|
358
358
|
}
|
|
359
|
-
function
|
|
359
|
+
function M(e, t) {
|
|
360
360
|
if (t.error) throw t.error.value;
|
|
361
361
|
if (t.finished) return !1;
|
|
362
362
|
t.source ??= e[Symbol.iterator]();
|
|
@@ -368,31 +368,31 @@ function P(e, t) {
|
|
|
368
368
|
}
|
|
369
369
|
return n.done === !0 ? (t.finished = !0, t.source = void 0, !1) : (t.values.push(n.value), !0);
|
|
370
370
|
}
|
|
371
|
-
var
|
|
371
|
+
var N = class {
|
|
372
372
|
source;
|
|
373
|
-
cache =
|
|
373
|
+
cache = j();
|
|
374
374
|
constructor(e) {
|
|
375
375
|
this.source = e;
|
|
376
376
|
}
|
|
377
377
|
[Symbol.iterator]() {
|
|
378
|
-
return new
|
|
378
|
+
return new F(this.source, this.cache, !0);
|
|
379
379
|
}
|
|
380
380
|
changePartialMemoizationBehaviour() {
|
|
381
|
-
return new
|
|
381
|
+
return new P(this.source);
|
|
382
382
|
}
|
|
383
|
-
},
|
|
383
|
+
}, P = class {
|
|
384
384
|
source;
|
|
385
|
-
cache =
|
|
385
|
+
cache = j();
|
|
386
386
|
constructor(e) {
|
|
387
387
|
this.source = e;
|
|
388
388
|
}
|
|
389
389
|
[Symbol.iterator]() {
|
|
390
|
-
return new
|
|
390
|
+
return new F(this.source, this.cache, !1);
|
|
391
391
|
}
|
|
392
392
|
changePartialMemoizationBehaviour() {
|
|
393
|
-
return new
|
|
393
|
+
return new N(this.source);
|
|
394
394
|
}
|
|
395
|
-
},
|
|
395
|
+
}, F = class extends f {
|
|
396
396
|
source;
|
|
397
397
|
cache;
|
|
398
398
|
drainFirst;
|
|
@@ -401,28 +401,28 @@ var F = class {
|
|
|
401
401
|
super(), this.source = e, this.cache = t, this.drainFirst = n;
|
|
402
402
|
}
|
|
403
403
|
advance() {
|
|
404
|
-
if (this.drainFirst) for (;
|
|
405
|
-
return this.index < this.cache.values.length ||
|
|
404
|
+
if (this.drainFirst) for (; M(this.source, this.cache););
|
|
405
|
+
return this.index < this.cache.values.length || M(this.source, this.cache) ? o(this.cache.values[this.index++]) : s();
|
|
406
406
|
}
|
|
407
407
|
};
|
|
408
408
|
//#endregion
|
|
409
409
|
//#region src/functions/min.ts
|
|
410
|
-
function
|
|
410
|
+
function I(e, t) {
|
|
411
411
|
return c(e), a(e, i(t), -1);
|
|
412
412
|
}
|
|
413
413
|
//#endregion
|
|
414
414
|
//#region src/functions/range.ts
|
|
415
|
-
function
|
|
415
|
+
function L(e, t, n) {
|
|
416
416
|
let r = typeof t == "number", i = r ? e : 0, a = r ? t : e;
|
|
417
417
|
if (!r && n !== void 0) throw Error("The \"options\" parameter must be the second argument when \"start\" is omitted");
|
|
418
418
|
let o = r ? n : t;
|
|
419
419
|
o !== void 0 && te(o, "options");
|
|
420
420
|
let { step: s = 1, reverse: c = !1 } = o ?? {};
|
|
421
|
-
|
|
422
|
-
let l =
|
|
423
|
-
return l.length > 0 ? new p(() => new
|
|
421
|
+
ee(s, "step");
|
|
422
|
+
let l = ce(i, a, Math.abs(s), c);
|
|
423
|
+
return l.length > 0 ? new p(() => new le(l.first, l.step, l.length)) : _();
|
|
424
424
|
}
|
|
425
|
-
function
|
|
425
|
+
function ce(e, t, n, r) {
|
|
426
426
|
let i = t < e ? -n : n, a = Math.ceil(Math.abs(t - e) / n);
|
|
427
427
|
return r ? {
|
|
428
428
|
first: e + (a - 1) * i,
|
|
@@ -434,7 +434,7 @@ function oe(e, t, n, r) {
|
|
|
434
434
|
length: a
|
|
435
435
|
};
|
|
436
436
|
}
|
|
437
|
-
var
|
|
437
|
+
var le = class extends f {
|
|
438
438
|
first;
|
|
439
439
|
step;
|
|
440
440
|
length;
|
|
@@ -448,15 +448,15 @@ var se = class extends f {
|
|
|
448
448
|
};
|
|
449
449
|
//#endregion
|
|
450
450
|
//#region src/functions/reduce.ts
|
|
451
|
-
function
|
|
452
|
-
if (c(e), t.length === 1) return
|
|
451
|
+
function R(e, ...t) {
|
|
452
|
+
if (c(e), t.length === 1) return z(e, t[0]);
|
|
453
453
|
let [n, r] = t;
|
|
454
454
|
l(r, "reducer");
|
|
455
455
|
let i = n, a = 0;
|
|
456
456
|
for (let t of e) i = r(i, t, a++);
|
|
457
457
|
return i;
|
|
458
458
|
}
|
|
459
|
-
function
|
|
459
|
+
function z(e, t) {
|
|
460
460
|
l(t, "reducer");
|
|
461
461
|
let n, r = 0;
|
|
462
462
|
for (let i of e) n = r === 0 ? i : t(n, i, r), r++;
|
|
@@ -465,23 +465,62 @@ function V(e, t) {
|
|
|
465
465
|
}
|
|
466
466
|
//#endregion
|
|
467
467
|
//#region src/functions/repeat.ts
|
|
468
|
-
function
|
|
469
|
-
return
|
|
468
|
+
function B(e, t) {
|
|
469
|
+
return u(t, "count"), h(t, (t) => t > 0 ? [e, t - 1] : void 0);
|
|
470
470
|
}
|
|
471
471
|
//#endregion
|
|
472
|
+
//#region src/functions/skip.ts
|
|
473
|
+
function V(e, t) {
|
|
474
|
+
return c(e), u(t, "count"), new p(() => new H(e, t));
|
|
475
|
+
}
|
|
476
|
+
var H = class extends m {
|
|
477
|
+
count;
|
|
478
|
+
constructor(e, t) {
|
|
479
|
+
super(e), this.count = t;
|
|
480
|
+
}
|
|
481
|
+
advance() {
|
|
482
|
+
for (; this.index < this.count;) {
|
|
483
|
+
let e = this.source.next();
|
|
484
|
+
if (e.done === !0) return e;
|
|
485
|
+
this.index++;
|
|
486
|
+
}
|
|
487
|
+
return this.source.next();
|
|
488
|
+
}
|
|
489
|
+
};
|
|
490
|
+
//#endregion
|
|
472
491
|
//#region src/functions/some.ts
|
|
473
492
|
function U(e, t) {
|
|
474
|
-
c(e),
|
|
493
|
+
if (c(e), t === void 0) {
|
|
494
|
+
for (let t of e) return !0;
|
|
495
|
+
return !1;
|
|
496
|
+
}
|
|
497
|
+
l(t, "predicate");
|
|
475
498
|
let n = 0;
|
|
476
499
|
for (let r of e) if (t(r, n++)) return !0;
|
|
477
500
|
return !1;
|
|
478
501
|
}
|
|
479
502
|
//#endregion
|
|
480
|
-
//#region src/functions/
|
|
503
|
+
//#region src/functions/take.ts
|
|
481
504
|
function W(e, t) {
|
|
482
|
-
return c(e),
|
|
505
|
+
return c(e), u(t, "count"), new p(() => new ue(e, t));
|
|
506
|
+
}
|
|
507
|
+
var ue = class extends m {
|
|
508
|
+
count;
|
|
509
|
+
constructor(e, t) {
|
|
510
|
+
super(e), this.count = t;
|
|
511
|
+
}
|
|
512
|
+
advance() {
|
|
513
|
+
if (this.index >= this.count) return this.source.return?.(), s();
|
|
514
|
+
let e = this.source.next();
|
|
515
|
+
return e.done === !0 ? e : (this.index++, o(e.value));
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
//#endregion
|
|
519
|
+
//#region src/functions/tap.ts
|
|
520
|
+
function G(e, t) {
|
|
521
|
+
return c(e), l(t, "tapper"), new p(() => new de(e, t));
|
|
483
522
|
}
|
|
484
|
-
var
|
|
523
|
+
var de = class extends m {
|
|
485
524
|
tapper;
|
|
486
525
|
constructor(e, t) {
|
|
487
526
|
super(e), this.tapper = t;
|
|
@@ -504,24 +543,26 @@ function K(e, t) {
|
|
|
504
543
|
}
|
|
505
544
|
//#endregion
|
|
506
545
|
//#region src/functions/index.ts
|
|
507
|
-
var
|
|
546
|
+
var fe = /* @__PURE__ */ t({
|
|
508
547
|
collectToArray: () => d,
|
|
509
548
|
empty: () => _,
|
|
510
549
|
filter: () => v,
|
|
511
|
-
flatMap: () =>
|
|
512
|
-
forEach: () =>
|
|
513
|
-
forEachAsync: () =>
|
|
514
|
-
getMemoizeDefaultOptions: () =>
|
|
515
|
-
map: () =>
|
|
516
|
-
materialize: () =>
|
|
517
|
-
max: () =>
|
|
518
|
-
memoize: () =>
|
|
519
|
-
min: () =>
|
|
520
|
-
range: () =>
|
|
521
|
-
reduce: () =>
|
|
522
|
-
repeat: () =>
|
|
550
|
+
flatMap: () => y,
|
|
551
|
+
forEach: () => S,
|
|
552
|
+
forEachAsync: () => C,
|
|
553
|
+
getMemoizeDefaultOptions: () => k,
|
|
554
|
+
map: () => w,
|
|
555
|
+
materialize: () => E,
|
|
556
|
+
max: () => O,
|
|
557
|
+
memoize: () => A,
|
|
558
|
+
min: () => I,
|
|
559
|
+
range: () => L,
|
|
560
|
+
reduce: () => R,
|
|
561
|
+
repeat: () => B,
|
|
562
|
+
skip: () => V,
|
|
523
563
|
some: () => U,
|
|
524
|
-
|
|
564
|
+
take: () => W,
|
|
565
|
+
tap: () => G,
|
|
525
566
|
tapChain: () => K
|
|
526
567
|
}), q = Symbol.for("iterable-linq-utility.IIterableLinq");
|
|
527
568
|
//#endregion
|
|
@@ -544,38 +585,44 @@ var Y = class {
|
|
|
544
585
|
return J(v(this.iterable, e));
|
|
545
586
|
}
|
|
546
587
|
flatMap(e) {
|
|
547
|
-
return J(
|
|
588
|
+
return J(y(this.iterable, e));
|
|
548
589
|
}
|
|
549
590
|
forEach(e) {
|
|
550
|
-
return
|
|
591
|
+
return S(this.iterable, e);
|
|
551
592
|
}
|
|
552
593
|
forEachAsync(e) {
|
|
553
|
-
return
|
|
594
|
+
return C(this.iterable, e);
|
|
554
595
|
}
|
|
555
596
|
map(e) {
|
|
556
|
-
return J(
|
|
597
|
+
return J(w(this.iterable, e));
|
|
557
598
|
}
|
|
558
599
|
materialize() {
|
|
559
|
-
return J(
|
|
600
|
+
return J(E(this.iterable));
|
|
560
601
|
}
|
|
561
602
|
max(e) {
|
|
562
|
-
return
|
|
603
|
+
return O(this.iterable, e);
|
|
563
604
|
}
|
|
564
605
|
memoize(e) {
|
|
565
|
-
return J(
|
|
606
|
+
return J(A(this.iterable, e));
|
|
566
607
|
}
|
|
567
608
|
min(e) {
|
|
568
|
-
return
|
|
609
|
+
return I(this.iterable, e);
|
|
569
610
|
}
|
|
570
611
|
reduce(...e) {
|
|
571
|
-
return e.length === 1 ?
|
|
612
|
+
return e.length === 1 ? R(this.iterable, e[0]) : R(this.iterable, e[0], e[1]);
|
|
613
|
+
}
|
|
614
|
+
skip(e) {
|
|
615
|
+
return J(V(this.iterable, e));
|
|
572
616
|
}
|
|
573
617
|
some(e) {
|
|
574
618
|
return U(this.iterable, e);
|
|
575
619
|
}
|
|
576
|
-
|
|
620
|
+
take(e) {
|
|
577
621
|
return J(W(this.iterable, e));
|
|
578
622
|
}
|
|
623
|
+
tap(e) {
|
|
624
|
+
return J(G(this.iterable, e));
|
|
625
|
+
}
|
|
579
626
|
tapChain(e) {
|
|
580
627
|
return J(K(this.iterable, e));
|
|
581
628
|
}
|
|
@@ -596,7 +643,7 @@ Object.defineProperty(Y.prototype, q, {
|
|
|
596
643
|
function X() {
|
|
597
644
|
return Y.prototype;
|
|
598
645
|
}
|
|
599
|
-
function
|
|
646
|
+
function pe(e) {
|
|
600
647
|
return typeof e == "object" && !!e && e[q] === !0;
|
|
601
648
|
}
|
|
602
649
|
function Z(e, t) {
|
|
@@ -611,11 +658,11 @@ function Z(e, t) {
|
|
|
611
658
|
function Q(e, t) {
|
|
612
659
|
ne(e, "name"), l(t, "implementation");
|
|
613
660
|
}
|
|
614
|
-
function
|
|
661
|
+
function me(e, t) {
|
|
615
662
|
if (Q(e, t), e in J([])) throw Error(`"${e}" already exists on IIterableLinq: use override() to replace it`);
|
|
616
663
|
Z(e, t);
|
|
617
664
|
}
|
|
618
|
-
function
|
|
665
|
+
function he(e, t) {
|
|
619
666
|
Q(e, t);
|
|
620
667
|
let n = e;
|
|
621
668
|
if (!(n !== "constructor" && Object.prototype.hasOwnProperty.call(X(), n))) throw Error(`"${n}" is not a method of IIterableLinq: use extend() to add it`);
|
|
@@ -623,19 +670,19 @@ function de(e, t) {
|
|
|
623
670
|
}
|
|
624
671
|
//#endregion
|
|
625
672
|
//#region src/index.ts
|
|
626
|
-
function
|
|
673
|
+
function ge() {
|
|
627
674
|
return $(_());
|
|
628
675
|
}
|
|
629
676
|
function $(e) {
|
|
630
677
|
return c(e), J(e);
|
|
631
678
|
}
|
|
632
|
-
function
|
|
633
|
-
if (typeof t == "number") return $(
|
|
679
|
+
function _e(e, t, n) {
|
|
680
|
+
if (typeof t == "number") return $(L(e, t, n));
|
|
634
681
|
if (n !== void 0) throw Error("The \"options\" parameter must be the second argument when \"start\" is omitted");
|
|
635
|
-
return $(
|
|
682
|
+
return $(L(e, t));
|
|
636
683
|
}
|
|
637
|
-
function
|
|
638
|
-
return $(
|
|
684
|
+
function ve(e, t) {
|
|
685
|
+
return $(B(e, t));
|
|
639
686
|
}
|
|
640
687
|
//#endregion
|
|
641
|
-
export {
|
|
688
|
+
export { fe as Functions, b as Unit, ge as empty, me as extend, $ as from, _e as fromRange, pe as isIterableLinq, he as override, ve as repeat, x as unit };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.IterableLinq={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.defineProperty,n=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r};function r(e){return typeof e==`function`}function i(e,t){return e<t?-1:e===t?0:1}function a(e){if(e==null)return i;if(r(e))return e;let t=Array.isArray(e)?e:[e];return(e,n)=>{for(let r of t){let t=i(e[r],n[r]);if(t!==0)return t}return 0}}function o(e,t,n){let r,i=!1;for(let a of e)!i||r==null&&a!=null?(r=a,i=!0):a!=null&&n*t(r,a)<0&&(r=a);return r}function s(e){return{done:!1,value:e}}function c(e){return{done:!0,value:e}}function l(e){if(e==null)throw Error(`The "sourceIterable" must be provided`);if(!r(e[Symbol.iterator]))throw Error(`The provided "sourceIterable" does not conform to the iterator protocol https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol. It must implement the "[Symbol.iterator]" function.`)}function u(e,t){if(!r(e))throw Error(`The "${t}" function must be provided`)}function d(e,t){if(!Number.isInteger(e)||e<0)throw Error(`The "${t}" parameter must be a non-negative integer`)}function ee(e,t){if(!Number.isFinite(e)||e===0)throw Error(`The "${t}" parameter must be a finite number other than 0`)}function te(e,t){if(typeof e!=`object`||!e)throw Error(`The "${t}" parameter must be an object`)}function ne(e,t){if(typeof e!=`string`||e.length===0)throw Error(`The "${t}" parameter must be a non-empty string`)}function f(e){if(l(e),Array.isArray(e)||e instanceof Set)return Array.from(e);let t=[];for(let n of e)t.push(n);return t}var p=class{done=!1;next(){if(this.done)return c();let e=this.advance();return e.done===!0&&(this.done=!0),e}return(e){return this.done||(this.done=!0,this.onReturn(e)),c(e)}[Symbol.iterator](){return this}onReturn(e){}closeAfterCallbackError(){if(!this.done){this.done=!0;try{this.onReturn()}catch{}}}},m=class{createIterator;constructor(e){this.createIterator=e}[Symbol.iterator](){return this.createIterator()}},h=class extends p{source;index=0;constructor(e){super(),this.source=e[Symbol.iterator]()}onReturn(e){this.source.return?.(e)}};function g(e,t){return new m(()=>new re(e,t))}var re=class extends p{state;step;constructor(e,t){super(),this.state=e,this.step=t}advance(){let e=this.step(this.state);return e===void 0?c():(this.state=e[1],s(e[0]))}};function _(){return g(void 0,()=>void 0)}function v(e,t){return l(e),u(t,`predicate`),new m(()=>new ie(e,t))}var ie=class extends h{predicate;constructor(e,t){super(e),this.predicate=t}advance(){for(let e=this.source.next();;e=this.source.next()){if(e.done===!0)return e;let t;try{t=this.predicate(e.value,this.index++)}catch(e){throw this.closeAfterCallbackError(),e}if(t)return e}}};function y(e,t){return l(e),u(t,`mapper`),new m(()=>new ae(e,t))}var ae=class e extends h{mapper;static steps={outer:t=>{let n=t.source.next();if(n.done===!0)return n;let r=e.mapNext(t,n.value);if(r===void 0){t.state=`inner`;return}if(r.length!==0)return t.array=r,t.position=1,t.state=`array`,s(r[0])},inner:t=>{let n=e.nextInner(t);if(n.done!==!0)return n;t.inner=void 0,t.state=`outer`},array:e=>{if(e.position<e.array.length)return s(e.array[e.position++]);e.array=void 0,e.state=`outer`}};state=`outer`;inner;array;position=0;constructor(e,t){super(e),this.mapper=t}advance(){for(;;){let t=e.steps[this.state](this);if(t!==void 0)return t}}onReturn(e){this.array=void 0;try{this.inner?.return?.(e)}finally{super.onReturn(e)}}static mapNext(e,t){try{let n=e.mapper(t,e.index++);if(Array.isArray(n))return n;e.inner=n[Symbol.iterator]();return}catch(t){throw e.closeAfterCallbackError(),t}}static nextInner(e){try{return e.inner.next()}catch(t){throw e.inner=void 0,e.closeAfterCallbackError(),t}}},b=class e{static instance=e.createFrozen();constructor(){}static createFrozen(){let t=new e;return Object.freeze(t),t}};function x(){return b.instance}function S(e,t){l(e),u(t,`action`);let n=0;for(let r of e)t(r,n++);return x()}async function C(e,t){l(e),u(t,`action`);let n=0;for(let r of e)await t(r,n++);return x()}function w(e,t){return l(e),u(t,`mapper`),new m(()=>new T(e,t))}var T=class extends h{mapper;constructor(e,t){super(e),this.mapper=t}advance(){let e=this.source.next();if(e.done===!0)return e;let t;try{t=this.mapper(e.value,this.index++)}catch(e){throw this.closeAfterCallbackError(),e}return s(t)}};function E(e){l(e);let t=new D;for(let n of e)t.addLast(n);return t}var D=class{internalSize=0;head=null;tail=null;[Symbol.iterator](){return new oe(this.head)}addFirst(e){let t={data:e,nextNode:this.head};return this.tail===null&&(this.tail=t),this.head=t,this.internalSize++,this}addLast(e){let t={data:e,nextNode:null};return this.tail===null?this.head=t:this.tail.nextNode=t,this.tail=t,this.internalSize++,this}size(){return this.internalSize}},oe=class extends p{current;constructor(e){super(),this.current=e}advance(){let e=this.current;return e===null?c():(this.current=e.nextNode,s(e.data))}};function O(e){return l(e),e instanceof k?e:new k(e)}var k=class{source;constructor(e){this.source=E(e)}[Symbol.iterator](){return this.source[Symbol.iterator]()}};function A(e,t){return l(e),o(e,a(t),1)}function j(){return{allowPartialMemoization:!0}}function M(e,t){l(e);let n={...j(),...t}.allowPartialMemoization;return e instanceof F?n?e.changePartialMemoizationBehaviour():e:e instanceof I?n?e:e.changePartialMemoizationBehaviour():n?new I(e):new F(e)}function N(){return{values:[],finished:!1}}function P(e,t){if(t.error)throw t.error.value;if(t.finished)return!1;t.source??=e[Symbol.iterator]();let n;try{n=t.source.next()}catch(e){throw t.error={value:e},t.source=void 0,e}return n.done===!0?(t.finished=!0,t.source=void 0,!1):(t.values.push(n.value),!0)}var F=class{source;cache=N();constructor(e){this.source=e}[Symbol.iterator](){return new L(this.source,this.cache,!0)}changePartialMemoizationBehaviour(){return new I(this.source)}},I=class{source;cache=N();constructor(e){this.source=e}[Symbol.iterator](){return new L(this.source,this.cache,!1)}changePartialMemoizationBehaviour(){return new F(this.source)}},L=class extends p{source;cache;drainFirst;index=0;constructor(e,t,n){super(),this.source=e,this.cache=t,this.drainFirst=n}advance(){if(this.drainFirst)for(;P(this.source,this.cache););return this.index<this.cache.values.length||P(this.source,this.cache)?s(this.cache.values[this.index++]):c()}};function R(e,t){return l(e),o(e,a(t),-1)}function z(e,t,n){let r=typeof t==`number`,i=r?e:0,a=r?t:e;if(!r&&n!==void 0)throw Error(`The "options" parameter must be the second argument when "start" is omitted`);let o=r?n:t;o!==void 0&&te(o,`options`);let{step:s=1,reverse:c=!1}=o??{};ee(s,`step`);let l=se(i,a,Math.abs(s),c);return l.length>0?new m(()=>new B(l.first,l.step,l.length)):_()}function se(e,t,n,r){let i=t<e?-n:n,a=Math.ceil(Math.abs(t-e)/n);return r?{first:e+(a-1)*i,step:-i,length:a}:{first:e,step:i,length:a}}var B=class extends p{first;step;length;index=0;constructor(e,t,n){super(),this.first=e,this.step=t,this.length=n}advance(){return this.index>=this.length?c():s(this.first+this.index++*this.step)}};function V(e,...t){if(l(e),t.length===1)return H(e,t[0]);let[n,r]=t;u(r,`reducer`);let i=n,a=0;for(let t of e)i=r(i,t,a++);return i}function H(e,t){u(t,`reducer`);let n,r=0;for(let i of e)n=r===0?i:t(n,i,r),r++;if(r===0)throw Error(`The "sourceIterable" must not be empty when "reduce" has no seed`);return n}function U(e,t){return d(t,`count`),g(t,t=>t>0?[e,t-1]:void 0)}function W(e,t){l(e),u(t,`predicate`);let n=0;for(let r of e)if(t(r,n++))return!0;return!1}function G(e,t){return l(e),u(t,`tapper`),new m(()=>new ce(e,t))}var ce=class extends h{tapper;constructor(e,t){super(e),this.tapper=t}advance(){let e=this.source.next();if(e.done===!0)return e;try{this.tapper(e.value,this.index++)}catch(e){throw this.closeAfterCallbackError(),e}return e}};function K(e,t){return l(e),u(t,`tapper`),new m(()=>(t(e,0),e[Symbol.iterator]()))}var le=n({collectToArray:()=>f,empty:()=>_,filter:()=>v,flatMap:()=>y,forEach:()=>S,forEachAsync:()=>C,getMemoizeDefaultOptions:()=>j,map:()=>w,materialize:()=>O,max:()=>A,memoize:()=>M,min:()=>R,range:()=>z,reduce:()=>V,repeat:()=>U,some:()=>W,tap:()=>G,tapChain:()=>K}),q=Symbol.for(`iterable-linq-utility.IIterableLinq`);function J(e){return new Y(e)}var Y=class{iterable;constructor(e){this.iterable=e}[Symbol.iterator](){return this.iterable[Symbol.iterator]()}collectToArray(){return f(this.iterable)}filter(e){return J(v(this.iterable,e))}flatMap(e){return J(y(this.iterable,e))}forEach(e){return S(this.iterable,e)}forEachAsync(e){return C(this.iterable,e)}map(e){return J(w(this.iterable,e))}materialize(){return J(O(this.iterable))}max(e){return A(this.iterable,e)}memoize(e){return J(M(this.iterable,e))}min(e){return R(this.iterable,e)}reduce(...e){return e.length===1?V(this.iterable,e[0]):V(this.iterable,e[0],e[1])}some(e){return W(this.iterable,e)}tap(e){return J(G(this.iterable,e))}tapChain(e){return J(K(this.iterable,e))}tapChainCreation(e){u(e,`chainCreationTapper`);let t=this;return e(t),t}};Object.defineProperty(Y.prototype,q,{value:!0,enumerable:!1,writable:!1,configurable:!1});function X(){return Y.prototype}function ue(e){return typeof e==`object`&&!!e&&e[q]===!0}function Z(e,t){let n=Object.getOwnPropertyDescriptor(X(),e);Object.defineProperty(X(),e,{value:t,enumerable:!1,writable:n?.writable??!1,configurable:!0})}function Q(e,t){ne(e,`name`),u(t,`implementation`)}function de(e,t){if(Q(e,t),e in J([]))throw Error(`"${e}" already exists on IIterableLinq: use override() to replace it`);Z(e,t)}function fe(e,t){Q(e,t);let n=e;if(!(n!==`constructor`&&Object.prototype.hasOwnProperty.call(X(),n)))throw Error(`"${n}" is not a method of IIterableLinq: use extend() to add it`);Z(n,t)}function pe(){return $(_())}function $(e){return l(e),J(e)}function me(e,t,n){if(typeof t==`number`)return $(z(e,t,n));if(n!==void 0)throw Error(`The "options" parameter must be the second argument when "start" is omitted`);return $(z(e,t))}function he(e,t){return $(U(e,t))}Object.defineProperty(e,"Functions",{enumerable:!0,get:function(){return le}}),e.Unit=b,e.empty=pe,e.extend=de,e.from=$,e.fromRange=me,e.isIterableLinq=ue,e.override=fe,e.repeat=he,e.unit=x});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.IterableLinq={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.defineProperty,n=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r};function r(e){return typeof e==`function`}function i(e,t){return e<t?-1:e===t?0:1}function a(e){if(e==null)return i;if(r(e))return e;let t=Array.isArray(e)?e:[e];return(e,n)=>{for(let r of t){let t=i(e[r],n[r]);if(t!==0)return t}return 0}}function o(e,t,n){let r,i=!1;for(let a of e)!i||r==null&&a!=null?(r=a,i=!0):a!=null&&n*t(r,a)<0&&(r=a);return r}function s(e){return{done:!1,value:e}}function c(e){return{done:!0,value:e}}function l(e){if(e==null)throw Error(`The "sourceIterable" must be provided`);if(!r(e[Symbol.iterator]))throw Error(`The provided "sourceIterable" does not conform to the iterator protocol https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol. It must implement the "[Symbol.iterator]" function.`)}function u(e,t){if(!r(e))throw Error(`The "${t}" function must be provided`)}function d(e,t){if(!Number.isInteger(e)||e<0)throw Error(`The "${t}" parameter must be a non-negative integer`)}function f(e,t){if(!Number.isFinite(e)||e===0)throw Error(`The "${t}" parameter must be a finite number other than 0`)}function ee(e,t){if(typeof e!=`object`||!e)throw Error(`The "${t}" parameter must be an object`)}function te(e,t){if(typeof e!=`string`||e.length===0)throw Error(`The "${t}" parameter must be a non-empty string`)}function p(e){if(l(e),Array.isArray(e)||e instanceof Set)return Array.from(e);let t=[];for(let n of e)t.push(n);return t}var m=class{done=!1;next(){if(this.done)return c();let e=this.advance();return e.done===!0&&(this.done=!0),e}return(e){return this.done||(this.done=!0,this.onReturn(e)),c(e)}[Symbol.iterator](){return this}onReturn(e){}closeAfterCallbackError(){if(!this.done){this.done=!0;try{this.onReturn()}catch{}}}},h=class{createIterator;constructor(e){this.createIterator=e}[Symbol.iterator](){return this.createIterator()}},g=class extends m{source;index=0;constructor(e){super(),this.source=e[Symbol.iterator]()}onReturn(e){this.source.return?.(e)}};function _(e,t){return new h(()=>new ne(e,t))}var ne=class extends m{state;step;constructor(e,t){super(),this.state=e,this.step=t}advance(){let e=this.step(this.state);return e===void 0?c():(this.state=e[1],s(e[0]))}};function v(){return _(void 0,()=>void 0)}function y(e,t){return l(e),u(t,`predicate`),new h(()=>new re(e,t))}var re=class extends g{predicate;constructor(e,t){super(e),this.predicate=t}advance(){for(let e=this.source.next();;e=this.source.next()){if(e.done===!0)return e;let t;try{t=this.predicate(e.value,this.index++)}catch(e){throw this.closeAfterCallbackError(),e}if(t)return e}}};function b(e,t){return l(e),u(t,`mapper`),new h(()=>new ie(e,t))}var ie=class e extends g{mapper;static steps={outer:t=>{let n=t.source.next();if(n.done===!0)return n;let r=e.mapNext(t,n.value);if(r===void 0){t.state=`inner`;return}if(r.length!==0)return t.array=r,t.position=1,t.state=`array`,s(r[0])},inner:t=>{let n=e.nextInner(t);if(n.done!==!0)return n;t.inner=void 0,t.state=`outer`},array:e=>{if(e.position<e.array.length)return s(e.array[e.position++]);e.array=void 0,e.state=`outer`}};state=`outer`;inner;array;position=0;constructor(e,t){super(e),this.mapper=t}advance(){for(;;){let t=e.steps[this.state](this);if(t!==void 0)return t}}onReturn(e){this.array=void 0;try{this.inner?.return?.(e)}finally{super.onReturn(e)}}static mapNext(e,t){try{let n=e.mapper(t,e.index++);if(Array.isArray(n))return n;e.inner=n[Symbol.iterator]();return}catch(t){throw e.closeAfterCallbackError(),t}}static nextInner(e){try{return e.inner.next()}catch(t){throw e.inner=void 0,e.closeAfterCallbackError(),t}}},x=class e{static instance=e.createFrozen();constructor(){}static createFrozen(){let t=new e;return Object.freeze(t),t}};function S(){return x.instance}function C(e,t){l(e),u(t,`action`);let n=0;for(let r of e)t(r,n++);return S()}async function w(e,t){l(e),u(t,`action`);let n=0;for(let r of e)await t(r,n++);return S()}function T(e,t){return l(e),u(t,`mapper`),new h(()=>new ae(e,t))}var ae=class extends g{mapper;constructor(e,t){super(e),this.mapper=t}advance(){let e=this.source.next();if(e.done===!0)return e;let t;try{t=this.mapper(e.value,this.index++)}catch(e){throw this.closeAfterCallbackError(),e}return s(t)}};function oe(e){l(e);let t=new se;for(let n of e)t.addLast(n);return t}var se=class{internalSize=0;head=null;tail=null;[Symbol.iterator](){return new ce(this.head)}addFirst(e){let t={data:e,nextNode:this.head};return this.tail===null&&(this.tail=t),this.head=t,this.internalSize++,this}addLast(e){let t={data:e,nextNode:null};return this.tail===null?this.head=t:this.tail.nextNode=t,this.tail=t,this.internalSize++,this}size(){return this.internalSize}},ce=class extends m{current;constructor(e){super(),this.current=e}advance(){let e=this.current;return e===null?c():(this.current=e.nextNode,s(e.data))}};function E(e){return l(e),e instanceof D?e:new D(e)}var D=class{source;constructor(e){this.source=oe(e)}[Symbol.iterator](){return this.source[Symbol.iterator]()}};function O(e,t){return l(e),o(e,a(t),1)}function k(){return{allowPartialMemoization:!0}}function A(e,t){l(e);let n={...k(),...t}.allowPartialMemoization;return e instanceof N?n?e.changePartialMemoizationBehaviour():e:e instanceof P?n?e:e.changePartialMemoizationBehaviour():n?new P(e):new N(e)}function j(){return{values:[],finished:!1}}function M(e,t){if(t.error)throw t.error.value;if(t.finished)return!1;t.source??=e[Symbol.iterator]();let n;try{n=t.source.next()}catch(e){throw t.error={value:e},t.source=void 0,e}return n.done===!0?(t.finished=!0,t.source=void 0,!1):(t.values.push(n.value),!0)}var N=class{source;cache=j();constructor(e){this.source=e}[Symbol.iterator](){return new F(this.source,this.cache,!0)}changePartialMemoizationBehaviour(){return new P(this.source)}},P=class{source;cache=j();constructor(e){this.source=e}[Symbol.iterator](){return new F(this.source,this.cache,!1)}changePartialMemoizationBehaviour(){return new N(this.source)}},F=class extends m{source;cache;drainFirst;index=0;constructor(e,t,n){super(),this.source=e,this.cache=t,this.drainFirst=n}advance(){if(this.drainFirst)for(;M(this.source,this.cache););return this.index<this.cache.values.length||M(this.source,this.cache)?s(this.cache.values[this.index++]):c()}};function I(e,t){return l(e),o(e,a(t),-1)}function L(e,t,n){let r=typeof t==`number`,i=r?e:0,a=r?t:e;if(!r&&n!==void 0)throw Error(`The "options" parameter must be the second argument when "start" is omitted`);let o=r?n:t;o!==void 0&&ee(o,`options`);let{step:s=1,reverse:c=!1}=o??{};f(s,`step`);let l=le(i,a,Math.abs(s),c);return l.length>0?new h(()=>new ue(l.first,l.step,l.length)):v()}function le(e,t,n,r){let i=t<e?-n:n,a=Math.ceil(Math.abs(t-e)/n);return r?{first:e+(a-1)*i,step:-i,length:a}:{first:e,step:i,length:a}}var ue=class extends m{first;step;length;index=0;constructor(e,t,n){super(),this.first=e,this.step=t,this.length=n}advance(){return this.index>=this.length?c():s(this.first+this.index++*this.step)}};function R(e,...t){if(l(e),t.length===1)return de(e,t[0]);let[n,r]=t;u(r,`reducer`);let i=n,a=0;for(let t of e)i=r(i,t,a++);return i}function de(e,t){u(t,`reducer`);let n,r=0;for(let i of e)n=r===0?i:t(n,i,r),r++;if(r===0)throw Error(`The "sourceIterable" must not be empty when "reduce" has no seed`);return n}function z(e,t){return d(t,`count`),_(t,t=>t>0?[e,t-1]:void 0)}function B(e,t){return l(e),d(t,`count`),new h(()=>new V(e,t))}var V=class extends g{count;constructor(e,t){super(e),this.count=t}advance(){for(;this.index<this.count;){let e=this.source.next();if(e.done===!0)return e;this.index++}return this.source.next()}};function H(e,t){if(l(e),t===void 0){for(let t of e)return!0;return!1}u(t,`predicate`);let n=0;for(let r of e)if(t(r,n++))return!0;return!1}function U(e,t){return l(e),d(t,`count`),new h(()=>new fe(e,t))}var fe=class extends g{count;constructor(e,t){super(e),this.count=t}advance(){if(this.index>=this.count)return this.source.return?.(),c();let e=this.source.next();return e.done===!0?e:(this.index++,s(e.value))}};function W(e,t){return l(e),u(t,`tapper`),new h(()=>new pe(e,t))}var pe=class extends g{tapper;constructor(e,t){super(e),this.tapper=t}advance(){let e=this.source.next();if(e.done===!0)return e;try{this.tapper(e.value,this.index++)}catch(e){throw this.closeAfterCallbackError(),e}return e}};function G(e,t){return l(e),u(t,`tapper`),new h(()=>(t(e,0),e[Symbol.iterator]()))}var me=n({collectToArray:()=>p,empty:()=>v,filter:()=>y,flatMap:()=>b,forEach:()=>C,forEachAsync:()=>w,getMemoizeDefaultOptions:()=>k,map:()=>T,materialize:()=>E,max:()=>O,memoize:()=>A,min:()=>I,range:()=>L,reduce:()=>R,repeat:()=>z,skip:()=>B,some:()=>H,take:()=>U,tap:()=>W,tapChain:()=>G}),K=Symbol.for(`iterable-linq-utility.IIterableLinq`);function q(e){return new J(e)}var J=class{iterable;constructor(e){this.iterable=e}[Symbol.iterator](){return this.iterable[Symbol.iterator]()}collectToArray(){return p(this.iterable)}filter(e){return q(y(this.iterable,e))}flatMap(e){return q(b(this.iterable,e))}forEach(e){return C(this.iterable,e)}forEachAsync(e){return w(this.iterable,e)}map(e){return q(T(this.iterable,e))}materialize(){return q(E(this.iterable))}max(e){return O(this.iterable,e)}memoize(e){return q(A(this.iterable,e))}min(e){return I(this.iterable,e)}reduce(...e){return e.length===1?R(this.iterable,e[0]):R(this.iterable,e[0],e[1])}skip(e){return q(B(this.iterable,e))}some(e){return H(this.iterable,e)}take(e){return q(U(this.iterable,e))}tap(e){return q(W(this.iterable,e))}tapChain(e){return q(G(this.iterable,e))}tapChainCreation(e){u(e,`chainCreationTapper`);let t=this;return e(t),t}};Object.defineProperty(J.prototype,K,{value:!0,enumerable:!1,writable:!1,configurable:!1});function Y(){return J.prototype}function he(e){return typeof e==`object`&&!!e&&e[K]===!0}function X(e,t){let n=Object.getOwnPropertyDescriptor(Y(),e);Object.defineProperty(Y(),e,{value:t,enumerable:!1,writable:n?.writable??!1,configurable:!0})}function Z(e,t){te(e,`name`),u(t,`implementation`)}function Q(e,t){if(Z(e,t),e in q([]))throw Error(`"${e}" already exists on IIterableLinq: use override() to replace it`);X(e,t)}function ge(e,t){Z(e,t);let n=e;if(!(n!==`constructor`&&Object.prototype.hasOwnProperty.call(Y(),n)))throw Error(`"${n}" is not a method of IIterableLinq: use extend() to add it`);X(n,t)}function _e(){return $(v())}function $(e){return l(e),q(e)}function ve(e,t,n){if(typeof t==`number`)return $(L(e,t,n));if(n!==void 0)throw Error(`The "options" parameter must be the second argument when "start" is omitted`);return $(L(e,t))}function ye(e,t){return $(z(e,t))}Object.defineProperty(e,"Functions",{enumerable:!0,get:function(){return me}}),e.Unit=x,e.empty=_e,e.extend=Q,e.from=$,e.fromRange=ve,e.isIterableLinq=he,e.override=ge,e.repeat=ye,e.unit=S});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iterable-linq-utility",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "An Iterable mutation utility inspired by .net Linq and Javascript Array interface",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/iterable-linq-utility.umd.cjs",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"vite-plugin-dts": "^5.1.1",
|
|
74
74
|
"vitest": "^5.0.2"
|
|
75
75
|
},
|
|
76
|
-
"packageManager": "pnpm@
|
|
76
|
+
"packageManager": "pnpm@12.8.1"
|
|
77
77
|
}
|