@duplojs/utils 1.0.5 → 1.0.6
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/array/group.cjs +1 -1
- package/dist/array/group.mjs +2 -2
- package/dist/array/index.cjs +3 -0
- package/dist/array/index.d.ts +1 -0
- package/dist/array/index.mjs +2 -1
- package/dist/array/length.cjs +7 -0
- package/dist/array/length.d.ts +1 -0
- package/dist/array/length.mjs +5 -0
- package/dist/array/reduce.cjs +8 -9
- package/dist/array/reduce.d.ts +6 -8
- package/dist/array/reduce.mjs +8 -10
- package/dist/array/reduceRight.cjs +4 -12
- package/dist/array/reduceRight.d.ts +3 -30
- package/dist/array/reduceRight.mjs +4 -12
- package/dist/array/types/index.d.ts +1 -0
- package/dist/common/and.cjs +17 -0
- package/dist/common/and.mjs +15 -0
- package/dist/common/index.d.ts +2 -0
- package/dist/common/or.cjs +17 -0
- package/dist/common/or.mjs +15 -0
- package/dist/either/bool/create.d.ts +1 -0
- package/dist/either/future/create.d.ts +1 -1
- package/dist/either/nullable/create.d.ts +1 -0
- package/dist/either/nullish/create.d.ts +1 -0
- package/dist/either/optional/create.d.ts +1 -0
- package/dist/either/right/asyncPipe.cjs +8 -4
- package/dist/either/right/asyncPipe.d.ts +13 -15
- package/dist/either/right/asyncPipe.mjs +8 -4
- package/dist/either/right/pipe.cjs +15 -8
- package/dist/either/right/pipe.d.ts +13 -14
- package/dist/either/right/pipe.mjs +12 -5
- package/dist/generator/asyncReduce.cjs +4 -12
- package/dist/generator/asyncReduce.d.ts +3 -30
- package/dist/generator/asyncReduce.mjs +4 -12
- package/dist/generator/index.cjs +1 -0
- package/dist/generator/index.mjs +1 -1
- package/dist/generator/reduce.cjs +8 -9
- package/dist/generator/reduce.d.ts +8 -10
- package/dist/generator/reduce.mjs +8 -10
- package/dist/index.cjs +4 -0
- package/dist/index.mjs +2 -0
- package/dist/object/discriminate.d.ts +2 -3
- package/dist/string/index.cjs +2 -0
- package/dist/string/index.d.ts +1 -0
- package/dist/string/index.mjs +1 -0
- package/dist/string/length.cjs +7 -0
- package/dist/string/length.d.ts +2 -0
- package/dist/string/length.mjs +5 -0
- package/dist/string/types/index.d.ts +1 -0
- package/dist/string/types/stringLength.d.ts +2 -0
- package/package.json +1 -1
package/dist/array/group.cjs
CHANGED
|
@@ -19,7 +19,7 @@ function group(...args) {
|
|
|
19
19
|
return (array) => group(array, theFunction);
|
|
20
20
|
}
|
|
21
21
|
const [array, theFunction] = args;
|
|
22
|
-
return reduce.reduce(array, ({
|
|
22
|
+
return reduce.reduce(array, reduce.reduceFrom({}), ({ index, element, lastValue, nextWithObject }) => {
|
|
23
23
|
const { group, value } = theFunction(element, {
|
|
24
24
|
index,
|
|
25
25
|
output: groupOutput,
|
package/dist/array/group.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { reduce } from './reduce.mjs';
|
|
1
|
+
import { reduce, reduceFrom } from './reduce.mjs';
|
|
2
2
|
|
|
3
3
|
function groupOutput(...args) {
|
|
4
4
|
if (args.length === 1) {
|
|
@@ -17,7 +17,7 @@ function group(...args) {
|
|
|
17
17
|
return (array) => group(array, theFunction);
|
|
18
18
|
}
|
|
19
19
|
const [array, theFunction] = args;
|
|
20
|
-
return reduce(array, ({
|
|
20
|
+
return reduce(array, reduceFrom({}), ({ index, element, lastValue, nextWithObject }) => {
|
|
21
21
|
const { group, value } = theFunction(element, {
|
|
22
22
|
index,
|
|
23
23
|
output: groupOutput,
|
package/dist/array/index.cjs
CHANGED
|
@@ -48,6 +48,7 @@ var _delete$1 = require('./findAndSplice/delete.cjs');
|
|
|
48
48
|
var insert$1 = require('./findAndSplice/insert.cjs');
|
|
49
49
|
var replace$1 = require('./findAndSplice/replace.cjs');
|
|
50
50
|
var sum = require('./sum.cjs');
|
|
51
|
+
var length = require('./length.cjs');
|
|
51
52
|
|
|
52
53
|
|
|
53
54
|
|
|
@@ -64,6 +65,7 @@ exports.minElements = minElements.minElements;
|
|
|
64
65
|
exports.minOf = minOf.minOf;
|
|
65
66
|
exports.push = push.push;
|
|
66
67
|
exports.reduce = reduce.reduce;
|
|
68
|
+
exports.reduceFrom = reduce.reduceFrom;
|
|
67
69
|
exports.some = some.some;
|
|
68
70
|
exports.sort = _default.sort;
|
|
69
71
|
exports.sortNumber = number.sortNumber;
|
|
@@ -100,3 +102,4 @@ exports.findAndSpliceDelete = _delete$1.findAndSpliceDelete;
|
|
|
100
102
|
exports.findAndSpliceInsert = insert$1.findAndSpliceInsert;
|
|
101
103
|
exports.findAndSpliceReplace = replace$1.findAndSpliceReplace;
|
|
102
104
|
exports.sum = sum.sum;
|
|
105
|
+
exports.length = length.length;
|
package/dist/array/index.d.ts
CHANGED
package/dist/array/index.mjs
CHANGED
|
@@ -9,7 +9,7 @@ export { maxOf } from './maxOf.mjs';
|
|
|
9
9
|
export { minElements } from './minElements.mjs';
|
|
10
10
|
export { minOf } from './minOf.mjs';
|
|
11
11
|
export { push } from './push.mjs';
|
|
12
|
-
export { reduce } from './reduce.mjs';
|
|
12
|
+
export { reduce, reduceFrom } from './reduce.mjs';
|
|
13
13
|
export { some } from './some.mjs';
|
|
14
14
|
export { sort } from './sort/default.mjs';
|
|
15
15
|
export { sortNumber } from './sort/number.mjs';
|
|
@@ -46,3 +46,4 @@ export { findAndSpliceDelete } from './findAndSplice/delete.mjs';
|
|
|
46
46
|
export { findAndSpliceInsert } from './findAndSplice/insert.mjs';
|
|
47
47
|
export { findAndSpliceReplace } from './findAndSplice/replace.mjs';
|
|
48
48
|
export { sum } from './sum.mjs';
|
|
49
|
+
export { length } from './length.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function length<GenericInput extends readonly unknown[]>(input: GenericInput): GenericInput["length"];
|
package/dist/array/reduce.cjs
CHANGED
|
@@ -6,18 +6,16 @@ var unwrap = require('../common/unwrap.cjs');
|
|
|
6
6
|
var override = require('../object/override.cjs');
|
|
7
7
|
|
|
8
8
|
const arrayReduceFromKind = kind.createKind("array-reduce-from");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
9
|
+
function reduceFrom(value) {
|
|
10
|
+
return arrayReduceFromKind.addTo(wrapValue.wrapValue(value));
|
|
11
|
+
}
|
|
12
12
|
function reduce(...args) {
|
|
13
13
|
if (args.length === 2) {
|
|
14
|
-
const [
|
|
15
|
-
return (array) => reduce(array,
|
|
14
|
+
const [fromValue, theFunction] = args;
|
|
15
|
+
return (array) => reduce(array, fromValue, theFunction);
|
|
16
16
|
}
|
|
17
|
-
const [array,
|
|
18
|
-
let lastValue = unwrap.unwrap(
|
|
19
|
-
? getStartValue(getStartValueParams)
|
|
20
|
-
: getStartValue);
|
|
17
|
+
const [array, fromValue, theFunction] = args;
|
|
18
|
+
let lastValue = unwrap.unwrap(fromValue);
|
|
21
19
|
for (let index = 0; index < array.length; index++) {
|
|
22
20
|
const element = array[index];
|
|
23
21
|
const result = theFunction({
|
|
@@ -39,3 +37,4 @@ function reduce(...args) {
|
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
exports.reduce = reduce;
|
|
40
|
+
exports.reduceFrom = reduceFrom;
|
package/dist/array/reduce.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ interface ArrayReduceNext<GenericOutput extends unknown> {
|
|
|
8
8
|
interface ArrayReduceExit<GenericOutput extends unknown> {
|
|
9
9
|
"-exit": GenericOutput;
|
|
10
10
|
}
|
|
11
|
-
type
|
|
11
|
+
export type ArrayReduceExitOrNext<GenericOutput extends unknown = unknown> = ArrayReduceExit<GenericOutput> | ArrayReduceNext<GenericOutput>;
|
|
12
12
|
export interface ArrayReduceFunctionParams<GenericElement extends unknown = unknown, GenericOutput extends unknown = unknown> {
|
|
13
13
|
element: GenericElement;
|
|
14
14
|
index: number;
|
|
@@ -20,11 +20,9 @@ export interface ArrayReduceFunctionParams<GenericElement extends unknown = unkn
|
|
|
20
20
|
declare const arrayReduceFromKind: import("../common").KindHandler<import("../common").KindDefinition<"array-reduce-from", unknown>>;
|
|
21
21
|
export interface ArrayReduceFromResult<GenericValue extends unknown = unknown> extends Kind<typeof arrayReduceFromKind.definition>, WrappedValue<GenericValue> {
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends
|
|
27
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends ArrayReduceFromResult>(
|
|
28
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean>(array: readonly GenericElement[], startValue: GenericReduceFrom, theFunction: (params: ArrayReduceFunctionParams<GenericElement, ToLargeEnsemble<GenericReduceFrom>>) => ExitOrNext<ToLargeEnsemble<GenericReduceFrom>>): ToLargeEnsemble<GenericReduceFrom>;
|
|
29
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends ArrayReduceFromResult>(array: readonly GenericElement[], getStartValue: (params: GetStartValueParams) => GenericReduceFrom, theFunction: (params: ArrayReduceFunctionParams<GenericElement, Unwrap<GenericReduceFrom>>) => ExitOrNext<Unwrap<GenericReduceFrom>>): Unwrap<GenericReduceFrom>;
|
|
23
|
+
export declare function reduceFrom<GenericValue extends unknown>(value: GenericValue): ArrayReduceFromResult<GenericValue>;
|
|
24
|
+
export type ArrayEligibleReduceFromValue = number | string | bigint | boolean | ArrayReduceFromResult;
|
|
25
|
+
export type ArrayReduceFromValue<GenericValue extends ArrayEligibleReduceFromValue> = GenericValue extends ArrayReduceFromResult ? Unwrap<GenericValue> : ToLargeEnsemble<GenericValue>;
|
|
26
|
+
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends ArrayEligibleReduceFromValue>(startValue: GenericReduceFrom, theFunction: (params: ArrayReduceFunctionParams<GenericElement, ArrayReduceFromValue<GenericReduceFrom>>) => ArrayReduceExitOrNext<ArrayReduceFromValue<GenericReduceFrom>>): (array: readonly GenericElement[]) => ArrayReduceFromValue<GenericReduceFrom>;
|
|
27
|
+
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean | ArrayReduceFromResult>(array: readonly GenericElement[], startValue: GenericReduceFrom, theFunction: (params: ArrayReduceFunctionParams<GenericElement, ArrayReduceFromValue<GenericReduceFrom>>) => ArrayReduceExitOrNext<ArrayReduceFromValue<GenericReduceFrom>>): ArrayReduceFromValue<GenericReduceFrom>;
|
|
30
28
|
export {};
|
package/dist/array/reduce.mjs
CHANGED
|
@@ -4,18 +4,16 @@ import { unwrap } from '../common/unwrap.mjs';
|
|
|
4
4
|
import { override } from '../object/override.mjs';
|
|
5
5
|
|
|
6
6
|
const arrayReduceFromKind = createKind("array-reduce-from");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
7
|
+
function reduceFrom(value) {
|
|
8
|
+
return arrayReduceFromKind.addTo(wrapValue(value));
|
|
9
|
+
}
|
|
10
10
|
function reduce(...args) {
|
|
11
11
|
if (args.length === 2) {
|
|
12
|
-
const [
|
|
13
|
-
return (array) => reduce(array,
|
|
12
|
+
const [fromValue, theFunction] = args;
|
|
13
|
+
return (array) => reduce(array, fromValue, theFunction);
|
|
14
14
|
}
|
|
15
|
-
const [array,
|
|
16
|
-
let lastValue = unwrap(
|
|
17
|
-
? getStartValue(getStartValueParams)
|
|
18
|
-
: getStartValue);
|
|
15
|
+
const [array, fromValue, theFunction] = args;
|
|
16
|
+
let lastValue = unwrap(fromValue);
|
|
19
17
|
for (let index = 0; index < array.length; index++) {
|
|
20
18
|
const element = array[index];
|
|
21
19
|
const result = theFunction({
|
|
@@ -36,4 +34,4 @@ function reduce(...args) {
|
|
|
36
34
|
return lastValue;
|
|
37
35
|
}
|
|
38
36
|
|
|
39
|
-
export { reduce };
|
|
37
|
+
export { reduce, reduceFrom };
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var kind = require('../common/kind.cjs');
|
|
4
|
-
var wrapValue = require('../common/wrapValue.cjs');
|
|
5
3
|
var unwrap = require('../common/unwrap.cjs');
|
|
6
4
|
var override = require('../object/override.cjs');
|
|
7
5
|
|
|
8
|
-
const arrayReduceRightFromKind = kind.createKind("array-reduce-right-from");
|
|
9
|
-
const getStartValueParams = {
|
|
10
|
-
from: (value) => arrayReduceRightFromKind.addTo(wrapValue.wrapValue(value), null),
|
|
11
|
-
};
|
|
12
6
|
function reduceRight(...args) {
|
|
13
7
|
if (args.length === 2) {
|
|
14
|
-
const [
|
|
15
|
-
return (array) => reduceRight(array,
|
|
8
|
+
const [fromValue, theFunction] = args;
|
|
9
|
+
return (array) => reduceRight(array, fromValue, theFunction);
|
|
16
10
|
}
|
|
17
|
-
const [array,
|
|
18
|
-
let lastValue = unwrap.unwrap(
|
|
19
|
-
? getStartValue(getStartValueParams)
|
|
20
|
-
: getStartValue);
|
|
11
|
+
const [array, fromValue, theFunction] = args;
|
|
12
|
+
let lastValue = unwrap.unwrap(fromValue);
|
|
21
13
|
for (let index = array.length - 1; index >= 0; index--) {
|
|
22
14
|
const element = array[index];
|
|
23
15
|
const result = theFunction({
|
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { type ToLargeEnsemble } from "../common";
|
|
5
|
-
interface ArrayReduceRightNext<GenericOutput extends unknown> {
|
|
6
|
-
"-next": GenericOutput;
|
|
7
|
-
}
|
|
8
|
-
interface ArrayReduceRightExit<GenericOutput extends unknown> {
|
|
9
|
-
"-exit": GenericOutput;
|
|
10
|
-
}
|
|
11
|
-
type ExitOrNextRight<GenericOutput extends unknown = unknown> = ArrayReduceRightExit<GenericOutput> | ArrayReduceRightNext<GenericOutput>;
|
|
12
|
-
export interface ArrayReduceRightFunctionParams<GenericElement extends unknown = unknown, GenericOutput extends unknown = unknown> {
|
|
13
|
-
element: GenericElement;
|
|
14
|
-
index: number;
|
|
15
|
-
lastValue: GenericOutput;
|
|
16
|
-
nextWithObject: GenericOutput extends object ? (object1: GenericOutput, object2: Partial<GenericOutput>) => ArrayReduceRightNext<GenericOutput> : undefined;
|
|
17
|
-
next(output: GenericOutput): ArrayReduceRightNext<GenericOutput>;
|
|
18
|
-
exit(output: GenericOutput): ArrayReduceRightExit<GenericOutput>;
|
|
19
|
-
}
|
|
20
|
-
declare const arrayReduceRightFromKind: import("../common").KindHandler<import("../common").KindDefinition<"array-reduce-right-from", unknown>>;
|
|
21
|
-
export interface ArrayReduceRightFromResult<GenericValue extends unknown = unknown> extends Kind<typeof arrayReduceRightFromKind.definition>, WrappedValue<GenericValue> {
|
|
22
|
-
}
|
|
23
|
-
interface GetStartValueParams {
|
|
24
|
-
from<GenericValue extends unknown>(value: GenericValue): ArrayReduceRightFromResult<GenericValue>;
|
|
25
|
-
}
|
|
26
|
-
export declare function reduceRight<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean>(startValue: GenericReduceFrom, theFunction: (params: ArrayReduceRightFunctionParams<GenericElement, ToLargeEnsemble<GenericReduceFrom>>) => ExitOrNextRight<ToLargeEnsemble<GenericReduceFrom>>): (array: readonly GenericElement[]) => ToLargeEnsemble<GenericReduceFrom>;
|
|
27
|
-
export declare function reduceRight<GenericElement extends unknown, GenericReduceFrom extends ArrayReduceRightFromResult>(getStartValue: (params: GetStartValueParams) => GenericReduceFrom, theFunction: (params: ArrayReduceRightFunctionParams<GenericElement, Unwrap<GenericReduceFrom>>) => ExitOrNextRight<Unwrap<GenericReduceFrom>>): (array: readonly GenericElement[]) => Unwrap<GenericReduceFrom>;
|
|
28
|
-
export declare function reduceRight<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean>(array: readonly GenericElement[], startValue: GenericReduceFrom, theFunction: (params: ArrayReduceRightFunctionParams<GenericElement, ToLargeEnsemble<GenericReduceFrom>>) => ExitOrNextRight<ToLargeEnsemble<GenericReduceFrom>>): ToLargeEnsemble<GenericReduceFrom>;
|
|
29
|
-
export declare function reduceRight<GenericElement extends unknown, GenericReduceFrom extends ArrayReduceRightFromResult>(array: readonly GenericElement[], getStartValue: (params: GetStartValueParams) => GenericReduceFrom, theFunction: (params: ArrayReduceRightFunctionParams<GenericElement, Unwrap<GenericReduceFrom>>) => ExitOrNextRight<Unwrap<GenericReduceFrom>>): Unwrap<GenericReduceFrom>;
|
|
30
|
-
export {};
|
|
1
|
+
import { type ArrayReduceFunctionParams, type ArrayReduceFromResult, type ArrayReduceExitOrNext, type ArrayReduceFromValue } from "./reduce";
|
|
2
|
+
export declare function reduceRight<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean | ArrayReduceFromResult>(startValue: GenericReduceFrom, theFunction: (params: ArrayReduceFunctionParams<GenericElement, ArrayReduceFromValue<GenericReduceFrom>>) => ArrayReduceExitOrNext<ArrayReduceFromValue<GenericReduceFrom>>): (array: readonly GenericElement[]) => ArrayReduceFromValue<GenericReduceFrom>;
|
|
3
|
+
export declare function reduceRight<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean | ArrayReduceFromResult>(array: readonly GenericElement[], startValue: GenericReduceFrom, theFunction: (params: ArrayReduceFunctionParams<GenericElement, ArrayReduceFromValue<GenericReduceFrom>>) => ArrayReduceExitOrNext<ArrayReduceFromValue<GenericReduceFrom>>): ArrayReduceFromValue<GenericReduceFrom>;
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import { createKind } from '../common/kind.mjs';
|
|
2
|
-
import { wrapValue } from '../common/wrapValue.mjs';
|
|
3
1
|
import { unwrap } from '../common/unwrap.mjs';
|
|
4
2
|
import { override } from '../object/override.mjs';
|
|
5
3
|
|
|
6
|
-
const arrayReduceRightFromKind = createKind("array-reduce-right-from");
|
|
7
|
-
const getStartValueParams = {
|
|
8
|
-
from: (value) => arrayReduceRightFromKind.addTo(wrapValue(value), null),
|
|
9
|
-
};
|
|
10
4
|
function reduceRight(...args) {
|
|
11
5
|
if (args.length === 2) {
|
|
12
|
-
const [
|
|
13
|
-
return (array) => reduceRight(array,
|
|
6
|
+
const [fromValue, theFunction] = args;
|
|
7
|
+
return (array) => reduceRight(array, fromValue, theFunction);
|
|
14
8
|
}
|
|
15
|
-
const [array,
|
|
16
|
-
let lastValue = unwrap(
|
|
17
|
-
? getStartValue(getStartValueParams)
|
|
18
|
-
: getStartValue);
|
|
9
|
+
const [array, fromValue, theFunction] = args;
|
|
10
|
+
let lastValue = unwrap(fromValue);
|
|
19
11
|
for (let index = array.length - 1; index >= 0; index--) {
|
|
20
12
|
const element = array[index];
|
|
21
13
|
const result = theFunction({
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function and(...args) {
|
|
4
|
+
if (args.length === 1) {
|
|
5
|
+
const [predicatedList] = args;
|
|
6
|
+
return (input) => and(input, predicatedList);
|
|
7
|
+
}
|
|
8
|
+
const [input, predicatedList] = args;
|
|
9
|
+
for (const predicate of predicatedList) {
|
|
10
|
+
if (!predicate(input)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.and = and;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function and(...args) {
|
|
2
|
+
if (args.length === 1) {
|
|
3
|
+
const [predicatedList] = args;
|
|
4
|
+
return (input) => and(input, predicatedList);
|
|
5
|
+
}
|
|
6
|
+
const [input, predicatedList] = args;
|
|
7
|
+
for (const predicate of predicatedList) {
|
|
8
|
+
if (!predicate(input)) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { and };
|
package/dist/common/index.d.ts
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function or(...args) {
|
|
4
|
+
if (args.length === 1) {
|
|
5
|
+
const [predicatedList] = args;
|
|
6
|
+
return (input) => or(input, predicatedList);
|
|
7
|
+
}
|
|
8
|
+
const [input, predicatedList] = args;
|
|
9
|
+
for (const predicate of predicatedList) {
|
|
10
|
+
if (predicate(input)) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.or = or;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function or(...args) {
|
|
2
|
+
if (args.length === 1) {
|
|
3
|
+
const [predicatedList] = args;
|
|
4
|
+
return (input) => or(input, predicatedList);
|
|
5
|
+
}
|
|
6
|
+
const [input, predicatedList] = args;
|
|
7
|
+
for (const predicate of predicatedList) {
|
|
8
|
+
if (predicate(input)) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { or };
|
|
@@ -2,3 +2,4 @@ import { type IsEqual } from "../../common";
|
|
|
2
2
|
import { type BoolFalsyValue, type EitherBoolFalsy } from "./falsy";
|
|
3
3
|
import { type EitherBoolTruthy } from "./truthy";
|
|
4
4
|
export declare function bool<const GenericValue extends unknown = undefined>(value: GenericValue): GenericValue extends BoolFalsyValue ? EitherBoolFalsy<GenericValue> : IsEqual<GenericValue, number> extends true ? EitherBoolTruthy<GenericValue> | EitherBoolFalsy<0> : IsEqual<GenericValue, string> extends true ? EitherBoolTruthy<GenericValue> | EitherBoolFalsy<""> : EitherBoolTruthy<GenericValue>;
|
|
5
|
+
export type Bool<GenericValue extends unknown> = EitherBoolTruthy<GenericValue> | EitherBoolFalsy;
|
|
@@ -21,5 +21,5 @@ export declare class Future<const GenericValue extends unknown = unknown> extend
|
|
|
21
21
|
static instanceof<GenericValue extends unknown>(value: GenericValue): value is Extract<GenericValue, Future<any>>;
|
|
22
22
|
static all<const GenericValue extends unknown, GenericArray extends readonly GenericValue[] | []>(values: GenericArray): FutureEitherAllResult<GenericArray>;
|
|
23
23
|
}
|
|
24
|
-
export declare function future<
|
|
24
|
+
export declare function future<GenericEither extends AnyValue>(value: GenericEither): Future<GenericEither>;
|
|
25
25
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { type EitherNullableEmpty } from "./empty";
|
|
2
2
|
import { type EitherNullableFilled } from "./filled";
|
|
3
3
|
export declare function nullable<const GenericValue extends unknown = null>(value: GenericValue): GenericValue extends null ? EitherNullableEmpty : EitherNullableFilled<GenericValue>;
|
|
4
|
+
export type Nullable<GenericValue extends unknown> = EitherNullableFilled<GenericValue> | EitherNullableEmpty;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { type EitherNullishEmpty, type NullishValue } from "./empty";
|
|
2
2
|
import { type EitherNullishFilled } from "./filled";
|
|
3
3
|
export declare function nullish<const GenericValue extends unknown = undefined>(value: GenericValue): GenericValue extends NullishValue ? EitherNullishEmpty<GenericValue> : EitherNullishFilled<GenericValue>;
|
|
4
|
+
export type Nullish<GenericValue extends unknown> = EitherNullishFilled<GenericValue> | EitherNullishEmpty;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { type EitherOptionalEmpty } from "./empty";
|
|
2
2
|
import { type EitherOptionalFilled } from "./filled";
|
|
3
3
|
export declare function optional<const GenericValue extends unknown = undefined>(value: GenericValue): GenericValue extends undefined ? EitherOptionalEmpty : EitherOptionalFilled<GenericValue>;
|
|
4
|
+
export type Optional<GenericValue extends unknown> = EitherOptionalFilled<GenericValue> | EitherOptionalEmpty;
|
|
@@ -13,15 +13,19 @@ function rightAsyncPipe(input, ...pipes) {
|
|
|
13
13
|
return awaitedInput;
|
|
14
14
|
}
|
|
15
15
|
let acc = is$1.isRight(awaitedInput)
|
|
16
|
-
? awaitedInput
|
|
17
|
-
:
|
|
16
|
+
? unwrap.unwrap(awaitedInput)
|
|
17
|
+
: awaitedInput;
|
|
18
18
|
for (const pipe of pipes) {
|
|
19
|
-
acc = await pipe(
|
|
19
|
+
acc = await pipe(is$1.isRight(acc)
|
|
20
|
+
? unwrap.unwrap(acc)
|
|
21
|
+
: acc);
|
|
20
22
|
if (is.isLeft(acc)) {
|
|
21
23
|
return acc;
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
|
-
return acc
|
|
26
|
+
return is$1.isRight(acc)
|
|
27
|
+
? acc
|
|
28
|
+
: success.success(acc);
|
|
25
29
|
})());
|
|
26
30
|
}
|
|
27
31
|
|
|
@@ -3,20 +3,18 @@ import { type EitherLeft } from "../left";
|
|
|
3
3
|
import { type MaybeFutureEither } from "../future/maybeFutureEither";
|
|
4
4
|
import { type Future } from "../future";
|
|
5
5
|
import { type EitherSuccess } from "./success";
|
|
6
|
-
import { type
|
|
6
|
+
import { type AnyValue, type Unwrap } from "../../common";
|
|
7
7
|
type Either = EitherRight | EitherLeft;
|
|
8
|
-
type
|
|
9
|
-
export type
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
13
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
14
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
15
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
16
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
17
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
18
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
19
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends
|
|
20
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends EitherOrFutureEither, GenericOutputPipe2 extends EitherOrFutureEither, GenericOutputPipe3 extends EitherOrFutureEither, GenericOutputPipe4 extends EitherOrFutureEither, GenericOutputPipe5 extends EitherOrFutureEither, GenericOutputPipe6 extends EitherOrFutureEither, GenericOutputPipe7 extends EitherOrFutureEither, GenericOutputPipe8 extends EitherOrFutureEither, GenericOutputPipe9 extends EitherOrFutureEither>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<ToEither<Awaited<GenericInput>>, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe1>, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe2>, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe3>, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe4>, GenericOutputPipe5>, pipe6: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe5>, GenericOutputPipe6>, pipe7: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe6>, GenericOutputPipe7>, pipe8: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe7>, GenericOutputPipe8>, pipe9: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe8>, GenericOutputPipe9>): Future<Extract<EitherRightAsyncPipeResult<ToEither<Awaited<GenericInput>>, GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8 | GenericOutputPipe9, GenericOutputPipe9>, any>>;
|
|
21
|
-
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends EitherOrFutureEither, GenericOutputPipe2 extends EitherOrFutureEither, GenericOutputPipe3 extends EitherOrFutureEither, GenericOutputPipe4 extends EitherOrFutureEither, GenericOutputPipe5 extends EitherOrFutureEither, GenericOutputPipe6 extends EitherOrFutureEither, GenericOutputPipe7 extends EitherOrFutureEither, GenericOutputPipe8 extends EitherOrFutureEither, GenericOutputPipe9 extends EitherOrFutureEither, GenericOutputPipe10 extends EitherOrFutureEither>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<ToEither<Awaited<GenericInput>>, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe1>, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe2>, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe3>, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe4>, GenericOutputPipe5>, pipe6: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe5>, GenericOutputPipe6>, pipe7: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe6>, GenericOutputPipe7>, pipe8: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe7>, GenericOutputPipe8>, pipe9: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe8>, GenericOutputPipe9>, pipe10: EitherRightAsyncPipeFunction<Awaited<GenericOutputPipe9>, GenericOutputPipe10>): Future<Extract<EitherRightAsyncPipeResult<ToEither<Awaited<GenericInput>>, GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8 | GenericOutputPipe9 | GenericOutputPipe10, GenericOutputPipe10>, any>>;
|
|
8
|
+
export type EitherRightAsyncPipeFunction<GenericInput extends AnyValue = AnyValue, GenericOutput extends MaybeFutureEither<AnyValue> = MaybeFutureEither<AnyValue>> = (input: Awaited<GenericInput> extends infer InferredInput extends Either ? Unwrap<Exclude<Awaited<InferredInput>, EitherLeft>> : Exclude<Awaited<GenericInput>, Either>) => GenericOutput;
|
|
9
|
+
export type EitherRightAsyncPipeResult<GenericPipeOutputs extends AnyValue, GenericLastPipeOutput extends AnyValue> = Extract<Awaited<GenericPipeOutputs>, EitherLeft> | Exclude<Awaited<GenericLastPipeOutput> extends Either ? Awaited<GenericLastPipeOutput> : EitherSuccess<Awaited<GenericLastPipeOutput>>, EitherLeft>;
|
|
10
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1, GenericOutputPipe1>, any>>;
|
|
11
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2, GenericOutputPipe2>, any>>;
|
|
12
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3, GenericOutputPipe3>, any>>;
|
|
13
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>, GenericOutputPipe4 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<GenericOutputPipe3, GenericOutputPipe4>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4, GenericOutputPipe4>, any>>;
|
|
14
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>, GenericOutputPipe4 extends MaybeFutureEither<AnyValue>, GenericOutputPipe5 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<GenericOutputPipe4, GenericOutputPipe5>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5, GenericOutputPipe5>, any>>;
|
|
15
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>, GenericOutputPipe4 extends MaybeFutureEither<AnyValue>, GenericOutputPipe5 extends MaybeFutureEither<AnyValue>, GenericOutputPipe6 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightAsyncPipeFunction<GenericOutputPipe5, GenericOutputPipe6>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6, GenericOutputPipe6>, any>>;
|
|
16
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>, GenericOutputPipe4 extends MaybeFutureEither<AnyValue>, GenericOutputPipe5 extends MaybeFutureEither<AnyValue>, GenericOutputPipe6 extends MaybeFutureEither<AnyValue>, GenericOutputPipe7 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightAsyncPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightAsyncPipeFunction<GenericOutputPipe6, GenericOutputPipe7>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7, GenericOutputPipe7>, any>>;
|
|
17
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>, GenericOutputPipe4 extends MaybeFutureEither<AnyValue>, GenericOutputPipe5 extends MaybeFutureEither<AnyValue>, GenericOutputPipe6 extends MaybeFutureEither<AnyValue>, GenericOutputPipe7 extends MaybeFutureEither<AnyValue>, GenericOutputPipe8 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightAsyncPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightAsyncPipeFunction<GenericOutputPipe6, GenericOutputPipe7>, pipe8: EitherRightAsyncPipeFunction<GenericOutputPipe7, GenericOutputPipe8>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8, GenericOutputPipe8>, any>>;
|
|
18
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>, GenericOutputPipe4 extends MaybeFutureEither<AnyValue>, GenericOutputPipe5 extends MaybeFutureEither<AnyValue>, GenericOutputPipe6 extends MaybeFutureEither<AnyValue>, GenericOutputPipe7 extends MaybeFutureEither<AnyValue>, GenericOutputPipe8 extends MaybeFutureEither<AnyValue>, GenericOutputPipe9 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightAsyncPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightAsyncPipeFunction<GenericOutputPipe6, GenericOutputPipe7>, pipe8: EitherRightAsyncPipeFunction<GenericOutputPipe7, GenericOutputPipe8>, pipe9: EitherRightAsyncPipeFunction<GenericOutputPipe8, GenericOutputPipe9>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8 | GenericOutputPipe9, GenericOutputPipe9>, any>>;
|
|
19
|
+
export declare function rightAsyncPipe<GenericInput extends MaybeFutureEither<AnyValue>, GenericOutputPipe1 extends MaybeFutureEither<AnyValue>, GenericOutputPipe2 extends MaybeFutureEither<AnyValue>, GenericOutputPipe3 extends MaybeFutureEither<AnyValue>, GenericOutputPipe4 extends MaybeFutureEither<AnyValue>, GenericOutputPipe5 extends MaybeFutureEither<AnyValue>, GenericOutputPipe6 extends MaybeFutureEither<AnyValue>, GenericOutputPipe7 extends MaybeFutureEither<AnyValue>, GenericOutputPipe8 extends MaybeFutureEither<AnyValue>, GenericOutputPipe9 extends MaybeFutureEither<AnyValue>, GenericOutputPipe10 extends MaybeFutureEither<AnyValue>>(input: GenericInput, pipe1: EitherRightAsyncPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightAsyncPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightAsyncPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightAsyncPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightAsyncPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightAsyncPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightAsyncPipeFunction<GenericOutputPipe6, GenericOutputPipe7>, pipe8: EitherRightAsyncPipeFunction<GenericOutputPipe7, GenericOutputPipe8>, pipe9: EitherRightAsyncPipeFunction<GenericOutputPipe8, GenericOutputPipe9>, pipe10: EitherRightAsyncPipeFunction<GenericOutputPipe9, GenericOutputPipe10>): Future<Extract<EitherRightAsyncPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8 | GenericOutputPipe9 | GenericOutputPipe10, GenericOutputPipe10>, any>>;
|
|
22
20
|
export {};
|
|
@@ -11,15 +11,19 @@ function rightAsyncPipe(input, ...pipes) {
|
|
|
11
11
|
return awaitedInput;
|
|
12
12
|
}
|
|
13
13
|
let acc = isRight(awaitedInput)
|
|
14
|
-
? awaitedInput
|
|
15
|
-
:
|
|
14
|
+
? unwrap(awaitedInput)
|
|
15
|
+
: awaitedInput;
|
|
16
16
|
for (const pipe of pipes) {
|
|
17
|
-
acc = await pipe(
|
|
17
|
+
acc = await pipe(isRight(acc)
|
|
18
|
+
? unwrap(acc)
|
|
19
|
+
: acc);
|
|
18
20
|
if (isLeft(acc)) {
|
|
19
21
|
return acc;
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
|
-
return acc
|
|
24
|
+
return isRight(acc)
|
|
25
|
+
? acc
|
|
26
|
+
: success(acc);
|
|
23
27
|
})());
|
|
24
28
|
}
|
|
25
29
|
|
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var unwrap = require('../../common/unwrap.cjs');
|
|
4
|
-
var is
|
|
4
|
+
var is = require('../left/is.cjs');
|
|
5
5
|
var success = require('./success.cjs');
|
|
6
|
-
var is = require('./is.cjs');
|
|
6
|
+
var is$1 = require('./is.cjs');
|
|
7
7
|
|
|
8
8
|
/* eslint-disable @typescript-eslint/max-params */
|
|
9
9
|
function rightPipe(input, ...pipes) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
if (is.isLeft(input)) {
|
|
11
|
+
return input;
|
|
12
|
+
}
|
|
13
|
+
let acc = is$1.isRight(input)
|
|
14
|
+
? unwrap.unwrap(input)
|
|
15
|
+
: input;
|
|
13
16
|
for (const pipe of pipes) {
|
|
14
|
-
acc = pipe(
|
|
15
|
-
|
|
17
|
+
acc = pipe(is$1.isRight(acc)
|
|
18
|
+
? unwrap.unwrap(acc)
|
|
19
|
+
: acc);
|
|
20
|
+
if (is.isLeft(acc)) {
|
|
16
21
|
return acc;
|
|
17
22
|
}
|
|
18
23
|
}
|
|
19
|
-
return acc
|
|
24
|
+
return is$1.isRight(acc)
|
|
25
|
+
? acc
|
|
26
|
+
: success.success(acc);
|
|
20
27
|
}
|
|
21
28
|
|
|
22
29
|
exports.rightPipe = rightPipe;
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { type EitherRight } from "./create";
|
|
2
2
|
import { type EitherLeft } from "../left";
|
|
3
3
|
import { type EitherSuccess } from "./success";
|
|
4
|
-
import { type Unwrap } from "../../common";
|
|
4
|
+
import { type AnyValue, type Unwrap } from "../../common";
|
|
5
5
|
type Either = EitherRight | EitherLeft;
|
|
6
|
-
export type EitherRightPipeFunction<GenericInput extends
|
|
7
|
-
export type EitherRightPipeResult<
|
|
8
|
-
|
|
9
|
-
export declare function rightPipe<
|
|
10
|
-
export declare function rightPipe<
|
|
11
|
-
export declare function rightPipe<
|
|
12
|
-
export declare function rightPipe<
|
|
13
|
-
export declare function rightPipe<
|
|
14
|
-
export declare function rightPipe<
|
|
15
|
-
export declare function rightPipe<
|
|
16
|
-
export declare function rightPipe<
|
|
17
|
-
export declare function rightPipe<
|
|
18
|
-
export declare function rightPipe<const GenericInput extends unknown, GenericOutputPipe1 extends Either, GenericOutputPipe2 extends Either, GenericOutputPipe3 extends Either, GenericOutputPipe4 extends Either, GenericOutputPipe5 extends Either, GenericOutputPipe6 extends Either, GenericOutputPipe7 extends Either, GenericOutputPipe8 extends Either, GenericOutputPipe9 extends Either, GenericOutputPipe10 extends Either>(input: GenericInput, pipe1: EitherRightPipeFunction<ToEither<GenericInput>, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightPipeFunction<GenericOutputPipe6, GenericOutputPipe7>, pipe8: EitherRightPipeFunction<GenericOutputPipe7, GenericOutputPipe8>, pipe9: EitherRightPipeFunction<GenericOutputPipe8, GenericOutputPipe9>, pipe10: EitherRightPipeFunction<GenericOutputPipe9, GenericOutputPipe10>): Extract<EitherRightPipeResult<ToEither<GenericInput>, GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8 | GenericOutputPipe9 | GenericOutputPipe10, GenericOutputPipe10>, any>;
|
|
6
|
+
export type EitherRightPipeFunction<GenericInput extends AnyValue = AnyValue, GenericOutput extends AnyValue = AnyValue> = (input: GenericInput extends Either ? Unwrap<Exclude<GenericInput, EitherLeft>> : GenericInput) => GenericOutput;
|
|
7
|
+
export type EitherRightPipeResult<GenericPipeOutputs extends AnyValue, GenericLastPipeOutput extends AnyValue> = Extract<GenericPipeOutputs, EitherLeft> | Exclude<GenericLastPipeOutput extends Either ? GenericLastPipeOutput : EitherSuccess<GenericLastPipeOutput>, EitherLeft>;
|
|
8
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1, GenericOutputPipe1>, any>;
|
|
9
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2, GenericOutputPipe2>, any>;
|
|
10
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3, GenericOutputPipe3>, any>;
|
|
11
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue, GenericOutputPipe4 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4, GenericOutputPipe4>, any>;
|
|
12
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue, GenericOutputPipe4 extends AnyValue, GenericOutputPipe5 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightPipeFunction<GenericOutputPipe4, GenericOutputPipe5>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5, GenericOutputPipe5>, any>;
|
|
13
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue, GenericOutputPipe4 extends AnyValue, GenericOutputPipe5 extends AnyValue, GenericOutputPipe6 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightPipeFunction<GenericOutputPipe5, GenericOutputPipe6>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6, GenericOutputPipe6>, any>;
|
|
14
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue, GenericOutputPipe4 extends AnyValue, GenericOutputPipe5 extends AnyValue, GenericOutputPipe6 extends AnyValue, GenericOutputPipe7 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightPipeFunction<GenericOutputPipe6, GenericOutputPipe7>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7, GenericOutputPipe7>, any>;
|
|
15
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue, GenericOutputPipe4 extends AnyValue, GenericOutputPipe5 extends AnyValue, GenericOutputPipe6 extends AnyValue, GenericOutputPipe7 extends AnyValue, GenericOutputPipe8 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightPipeFunction<GenericOutputPipe6, GenericOutputPipe7>, pipe8: EitherRightPipeFunction<GenericOutputPipe7, GenericOutputPipe8>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8, GenericOutputPipe8>, any>;
|
|
16
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue, GenericOutputPipe4 extends AnyValue, GenericOutputPipe5 extends AnyValue, GenericOutputPipe6 extends AnyValue, GenericOutputPipe7 extends AnyValue, GenericOutputPipe8 extends AnyValue, GenericOutputPipe9 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightPipeFunction<GenericOutputPipe6, GenericOutputPipe7>, pipe8: EitherRightPipeFunction<GenericOutputPipe7, GenericOutputPipe8>, pipe9: EitherRightPipeFunction<GenericOutputPipe8, GenericOutputPipe9>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8 | GenericOutputPipe9, GenericOutputPipe9>, any>;
|
|
17
|
+
export declare function rightPipe<GenericInput extends AnyValue, GenericOutputPipe1 extends AnyValue, GenericOutputPipe2 extends AnyValue, GenericOutputPipe3 extends AnyValue, GenericOutputPipe4 extends AnyValue, GenericOutputPipe5 extends AnyValue, GenericOutputPipe6 extends AnyValue, GenericOutputPipe7 extends AnyValue, GenericOutputPipe8 extends AnyValue, GenericOutputPipe9 extends AnyValue, GenericOutputPipe10 extends AnyValue>(input: GenericInput, pipe1: EitherRightPipeFunction<GenericInput, GenericOutputPipe1>, pipe2: EitherRightPipeFunction<GenericOutputPipe1, GenericOutputPipe2>, pipe3: EitherRightPipeFunction<GenericOutputPipe2, GenericOutputPipe3>, pipe4: EitherRightPipeFunction<GenericOutputPipe3, GenericOutputPipe4>, pipe5: EitherRightPipeFunction<GenericOutputPipe4, GenericOutputPipe5>, pipe6: EitherRightPipeFunction<GenericOutputPipe5, GenericOutputPipe6>, pipe7: EitherRightPipeFunction<GenericOutputPipe6, GenericOutputPipe7>, pipe8: EitherRightPipeFunction<GenericOutputPipe7, GenericOutputPipe8>, pipe9: EitherRightPipeFunction<GenericOutputPipe8, GenericOutputPipe9>, pipe10: EitherRightPipeFunction<GenericOutputPipe9, GenericOutputPipe10>): Extract<EitherRightPipeResult<GenericInput | GenericOutputPipe1 | GenericOutputPipe2 | GenericOutputPipe3 | GenericOutputPipe4 | GenericOutputPipe5 | GenericOutputPipe6 | GenericOutputPipe7 | GenericOutputPipe8 | GenericOutputPipe9 | GenericOutputPipe10, GenericOutputPipe10>, any>;
|
|
19
18
|
export {};
|
|
@@ -5,16 +5,23 @@ import { isRight } from './is.mjs';
|
|
|
5
5
|
|
|
6
6
|
/* eslint-disable @typescript-eslint/max-params */
|
|
7
7
|
function rightPipe(input, ...pipes) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
if (isLeft(input)) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
let acc = isRight(input)
|
|
12
|
+
? unwrap(input)
|
|
13
|
+
: input;
|
|
11
14
|
for (const pipe of pipes) {
|
|
12
|
-
acc = pipe(
|
|
15
|
+
acc = pipe(isRight(acc)
|
|
16
|
+
? unwrap(acc)
|
|
17
|
+
: acc);
|
|
13
18
|
if (isLeft(acc)) {
|
|
14
19
|
return acc;
|
|
15
20
|
}
|
|
16
21
|
}
|
|
17
|
-
return acc
|
|
22
|
+
return isRight(acc)
|
|
23
|
+
? acc
|
|
24
|
+
: success(acc);
|
|
18
25
|
}
|
|
19
26
|
|
|
20
27
|
export { rightPipe };
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var kind = require('../common/kind.cjs');
|
|
4
|
-
var wrapValue = require('../common/wrapValue.cjs');
|
|
5
3
|
var unwrap = require('../common/unwrap.cjs');
|
|
6
4
|
var override = require('../object/override.cjs');
|
|
7
5
|
|
|
8
|
-
const generatorAsyncReduceFromKind = kind.createKind("generator-async-reduce-from");
|
|
9
|
-
const getStartValueParams = {
|
|
10
|
-
from: (value) => generatorAsyncReduceFromKind.addTo(wrapValue.wrapValue(value), null),
|
|
11
|
-
};
|
|
12
6
|
function asyncReduce(...args) {
|
|
13
7
|
if (args.length === 2) {
|
|
14
|
-
const [
|
|
15
|
-
return (iterator) => asyncReduce(iterator,
|
|
8
|
+
const [fromValue, theFunction] = args;
|
|
9
|
+
return (iterator) => asyncReduce(iterator, fromValue, theFunction);
|
|
16
10
|
}
|
|
17
|
-
const [iterator,
|
|
18
|
-
let lastValue = unwrap.unwrap(
|
|
19
|
-
? getStartValue(getStartValueParams)
|
|
20
|
-
: getStartValue);
|
|
11
|
+
const [iterator, fromValue, theFunction] = args;
|
|
12
|
+
let lastValue = unwrap.unwrap(fromValue);
|
|
21
13
|
return (async () => {
|
|
22
14
|
let index = 0;
|
|
23
15
|
for await (const element of iterator) {
|
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { type ToLargeEnsemble } from "../common";
|
|
5
|
-
interface AsyncGeneratorReduceNext<GenericOutput extends unknown> {
|
|
6
|
-
"-next": GenericOutput;
|
|
7
|
-
}
|
|
8
|
-
interface ArrayReduceExit<GenericOutput extends unknown> {
|
|
9
|
-
"-exit": GenericOutput;
|
|
10
|
-
}
|
|
11
|
-
type ExitOrNext<GenericOutput extends unknown = unknown> = ArrayReduceExit<GenericOutput> | AsyncGeneratorReduceNext<GenericOutput>;
|
|
12
|
-
export interface AsyncGeneratorReduceFunctionParams<GenericElement extends unknown = unknown, GenericOutput extends unknown = unknown> {
|
|
13
|
-
element: GenericElement;
|
|
14
|
-
index: number;
|
|
15
|
-
lastValue: GenericOutput;
|
|
16
|
-
nextWithObject: GenericOutput extends object ? (object1: GenericOutput, object2: Partial<GenericOutput>) => AsyncGeneratorReduceNext<GenericOutput> : undefined;
|
|
17
|
-
next(output: GenericOutput): AsyncGeneratorReduceNext<GenericOutput>;
|
|
18
|
-
exit(output: GenericOutput): ArrayReduceExit<GenericOutput>;
|
|
19
|
-
}
|
|
20
|
-
declare const generatorAsyncReduceFromKind: import("../common").KindHandler<import("../common").KindDefinition<"generator-async-reduce-from", unknown>>;
|
|
21
|
-
export interface AsyncGeneratorReduceFromResult<GenericValue extends unknown = unknown> extends Kind<typeof generatorAsyncReduceFromKind.definition>, WrappedValue<GenericValue> {
|
|
22
|
-
}
|
|
23
|
-
interface GetStartValueParams {
|
|
24
|
-
from<GenericValue extends unknown>(value: GenericValue): AsyncGeneratorReduceFromResult<GenericValue>;
|
|
25
|
-
}
|
|
26
|
-
export declare function asyncReduce<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean>(startValue: GenericReduceFrom, theFunction: (params: AsyncGeneratorReduceFunctionParams<GenericElement, ToLargeEnsemble<GenericReduceFrom>>) => ExitOrNext<ToLargeEnsemble<GenericReduceFrom>>): (iterator: Iterable<GenericElement> | AsyncIterable<GenericElement>) => Promise<ToLargeEnsemble<GenericReduceFrom>>;
|
|
27
|
-
export declare function asyncReduce<GenericElement extends unknown, GenericReduceFrom extends AsyncGeneratorReduceFromResult>(getStartValue: (params: GetStartValueParams) => GenericReduceFrom, theFunction: (params: AsyncGeneratorReduceFunctionParams<GenericElement, Unwrap<GenericReduceFrom>>) => ExitOrNext<Unwrap<GenericReduceFrom>>): (iterator: Iterable<GenericElement> | AsyncIterable<GenericElement>) => Promise<Unwrap<GenericReduceFrom>>;
|
|
28
|
-
export declare function asyncReduce<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean>(iterator: Iterable<GenericElement> | AsyncIterable<GenericElement>, startValue: GenericReduceFrom, theFunction: (params: AsyncGeneratorReduceFunctionParams<GenericElement, ToLargeEnsemble<GenericReduceFrom>>) => ExitOrNext<ToLargeEnsemble<GenericReduceFrom>>): Promise<ToLargeEnsemble<GenericReduceFrom>>;
|
|
29
|
-
export declare function asyncReduce<GenericElement extends unknown, GenericReduceFrom extends AsyncGeneratorReduceFromResult>(iterator: Iterable<GenericElement> | AsyncIterable<GenericElement>, getStartValue: (params: GetStartValueParams) => GenericReduceFrom, theFunction: (params: AsyncGeneratorReduceFunctionParams<GenericElement, Unwrap<GenericReduceFrom>>) => ExitOrNext<Unwrap<GenericReduceFrom>>): Promise<Unwrap<GenericReduceFrom>>;
|
|
30
|
-
export {};
|
|
1
|
+
import { type GeneratorReduceFromValue, type GeneratorEligibleReduceFromValue, type GeneratorReduceExitOrNext, type GeneratorReduceFunctionParams } from "./reduce";
|
|
2
|
+
export declare function asyncReduce<GenericElement extends unknown, GenericReduceFrom extends GeneratorEligibleReduceFromValue>(startValue: GenericReduceFrom, theFunction: (params: GeneratorReduceFunctionParams<GenericElement, GeneratorReduceFromValue<GenericReduceFrom>>) => GeneratorReduceExitOrNext<GeneratorReduceFromValue<GenericReduceFrom>>): (iterator: Iterable<GenericElement> | AsyncIterable<GenericElement>) => Promise<GeneratorReduceFromValue<GenericReduceFrom>>;
|
|
3
|
+
export declare function asyncReduce<GenericElement extends unknown, GenericReduceFrom extends GeneratorEligibleReduceFromValue>(iterator: Iterable<GenericElement> | AsyncIterable<GenericElement>, startValue: GenericReduceFrom, theFunction: (params: GeneratorReduceFunctionParams<GenericElement, GeneratorReduceFromValue<GenericReduceFrom>>) => GeneratorReduceExitOrNext<GeneratorReduceFromValue<GenericReduceFrom>>): Promise<GeneratorReduceFromValue<GenericReduceFrom>>;
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import { createKind } from '../common/kind.mjs';
|
|
2
|
-
import { wrapValue } from '../common/wrapValue.mjs';
|
|
3
1
|
import { unwrap } from '../common/unwrap.mjs';
|
|
4
2
|
import { override } from '../object/override.mjs';
|
|
5
3
|
|
|
6
|
-
const generatorAsyncReduceFromKind = createKind("generator-async-reduce-from");
|
|
7
|
-
const getStartValueParams = {
|
|
8
|
-
from: (value) => generatorAsyncReduceFromKind.addTo(wrapValue(value), null),
|
|
9
|
-
};
|
|
10
4
|
function asyncReduce(...args) {
|
|
11
5
|
if (args.length === 2) {
|
|
12
|
-
const [
|
|
13
|
-
return (iterator) => asyncReduce(iterator,
|
|
6
|
+
const [fromValue, theFunction] = args;
|
|
7
|
+
return (iterator) => asyncReduce(iterator, fromValue, theFunction);
|
|
14
8
|
}
|
|
15
|
-
const [iterator,
|
|
16
|
-
let lastValue = unwrap(
|
|
17
|
-
? getStartValue(getStartValueParams)
|
|
18
|
-
: getStartValue);
|
|
9
|
+
const [iterator, fromValue, theFunction] = args;
|
|
10
|
+
let lastValue = unwrap(fromValue);
|
|
19
11
|
return (async () => {
|
|
20
12
|
let index = 0;
|
|
21
13
|
for await (const element of iterator) {
|
package/dist/generator/index.cjs
CHANGED
|
@@ -18,6 +18,7 @@ exports.asyncMap = asyncMap.asyncMap;
|
|
|
18
18
|
exports.filter = filter.filter;
|
|
19
19
|
exports.asyncFilter = asyncFilter.asyncFilter;
|
|
20
20
|
exports.reduce = reduce.reduce;
|
|
21
|
+
exports.reduceFrom = reduce.reduceFrom;
|
|
21
22
|
exports.asyncReduce = asyncReduce.asyncReduce;
|
|
22
23
|
exports.loop = loop.loop;
|
|
23
24
|
exports.asyncLoop = asyncLoop.asyncLoop;
|
package/dist/generator/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ export { execute } from './execute.mjs';
|
|
|
3
3
|
export { asyncMap } from './asyncMap.mjs';
|
|
4
4
|
export { filter } from './filter.mjs';
|
|
5
5
|
export { asyncFilter } from './asyncFilter.mjs';
|
|
6
|
-
export { reduce } from './reduce.mjs';
|
|
6
|
+
export { reduce, reduceFrom } from './reduce.mjs';
|
|
7
7
|
export { asyncReduce } from './asyncReduce.mjs';
|
|
8
8
|
export { loop } from './loop.mjs';
|
|
9
9
|
export { asyncLoop } from './asyncLoop.mjs';
|
|
@@ -6,18 +6,16 @@ var unwrap = require('../common/unwrap.cjs');
|
|
|
6
6
|
var override = require('../object/override.cjs');
|
|
7
7
|
|
|
8
8
|
const generatorReduceFromKind = kind.createKind("generator-reduce-from");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
9
|
+
function reduceFrom(value) {
|
|
10
|
+
return generatorReduceFromKind.addTo(wrapValue.wrapValue(value));
|
|
11
|
+
}
|
|
12
12
|
function reduce(...args) {
|
|
13
13
|
if (args.length === 2) {
|
|
14
|
-
const [
|
|
15
|
-
return (iterator) => reduce(iterator,
|
|
14
|
+
const [fromValue, theFunction] = args;
|
|
15
|
+
return (iterator) => reduce(iterator, fromValue, theFunction);
|
|
16
16
|
}
|
|
17
|
-
const [iterator,
|
|
18
|
-
let lastValue = unwrap.unwrap(
|
|
19
|
-
? getStartValue(getStartValueParams)
|
|
20
|
-
: getStartValue);
|
|
17
|
+
const [iterator, fromValue, theFunction] = args;
|
|
18
|
+
let lastValue = unwrap.unwrap(fromValue);
|
|
21
19
|
let index = 0;
|
|
22
20
|
for (const element of iterator) {
|
|
23
21
|
const result = theFunction({
|
|
@@ -40,3 +38,4 @@ function reduce(...args) {
|
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
exports.reduce = reduce;
|
|
41
|
+
exports.reduceFrom = reduceFrom;
|
|
@@ -5,26 +5,24 @@ import { type ToLargeEnsemble } from "../common";
|
|
|
5
5
|
interface GeneratorReduceNext<GenericOutput extends unknown> {
|
|
6
6
|
"-next": GenericOutput;
|
|
7
7
|
}
|
|
8
|
-
interface
|
|
8
|
+
interface GeneratorReduceExit<GenericOutput extends unknown> {
|
|
9
9
|
"-exit": GenericOutput;
|
|
10
10
|
}
|
|
11
|
-
type
|
|
11
|
+
export type GeneratorReduceExitOrNext<GenericOutput extends unknown = unknown> = GeneratorReduceExit<GenericOutput> | GeneratorReduceNext<GenericOutput>;
|
|
12
12
|
export interface GeneratorReduceFunctionParams<GenericElement extends unknown = unknown, GenericOutput extends unknown = unknown> {
|
|
13
13
|
element: GenericElement;
|
|
14
14
|
index: number;
|
|
15
15
|
lastValue: GenericOutput;
|
|
16
16
|
nextWithObject: GenericOutput extends object ? (object1: GenericOutput, object2: Partial<GenericOutput>) => GeneratorReduceNext<GenericOutput> : undefined;
|
|
17
17
|
next(output: GenericOutput): GeneratorReduceNext<GenericOutput>;
|
|
18
|
-
exit(output: GenericOutput):
|
|
18
|
+
exit(output: GenericOutput): GeneratorReduceExit<GenericOutput>;
|
|
19
19
|
}
|
|
20
20
|
declare const generatorReduceFromKind: import("../common").KindHandler<import("../common").KindDefinition<"generator-reduce-from", unknown>>;
|
|
21
21
|
export interface GeneratorReduceFromResult<GenericValue extends unknown = unknown> extends Kind<typeof generatorReduceFromKind.definition>, WrappedValue<GenericValue> {
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends
|
|
27
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends
|
|
28
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends number | string | bigint | boolean>(iterator: Iterable<GenericElement>, startValue: GenericReduceFrom, theFunction: (params: GeneratorReduceFunctionParams<GenericElement, ToLargeEnsemble<GenericReduceFrom>>) => ExitOrNext<ToLargeEnsemble<GenericReduceFrom>>): ToLargeEnsemble<GenericReduceFrom>;
|
|
29
|
-
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends GeneratorReduceFromResult>(iterator: Iterable<GenericElement>, getStartValue: (params: GetStartValueParams) => GenericReduceFrom, theFunction: (params: GeneratorReduceFunctionParams<GenericElement, Unwrap<GenericReduceFrom>>) => ExitOrNext<Unwrap<GenericReduceFrom>>): Unwrap<GenericReduceFrom>;
|
|
23
|
+
export declare function reduceFrom<GenericValue extends unknown>(value: GenericValue): GeneratorReduceFromResult<GenericValue>;
|
|
24
|
+
export type GeneratorEligibleReduceFromValue = number | string | bigint | boolean | GeneratorReduceFromResult;
|
|
25
|
+
export type GeneratorReduceFromValue<GenericValue extends GeneratorEligibleReduceFromValue> = GenericValue extends GeneratorReduceFromResult ? Unwrap<GenericValue> : ToLargeEnsemble<GenericValue>;
|
|
26
|
+
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends GeneratorEligibleReduceFromValue>(startValue: GenericReduceFrom, theFunction: (params: GeneratorReduceFunctionParams<GenericElement, GeneratorReduceFromValue<GenericReduceFrom>>) => GeneratorReduceExitOrNext<GeneratorReduceFromValue<GenericReduceFrom>>): (iterator: Iterable<GenericElement>) => GeneratorReduceFromValue<GenericReduceFrom>;
|
|
27
|
+
export declare function reduce<GenericElement extends unknown, GenericReduceFrom extends GeneratorEligibleReduceFromValue>(iterator: Iterable<GenericElement>, startValue: GenericReduceFrom, theFunction: (params: GeneratorReduceFunctionParams<GenericElement, GeneratorReduceFromValue<GenericReduceFrom>>) => GeneratorReduceExitOrNext<GeneratorReduceFromValue<GenericReduceFrom>>): GeneratorReduceFromValue<GenericReduceFrom>;
|
|
30
28
|
export {};
|
|
@@ -4,18 +4,16 @@ import { unwrap } from '../common/unwrap.mjs';
|
|
|
4
4
|
import { override } from '../object/override.mjs';
|
|
5
5
|
|
|
6
6
|
const generatorReduceFromKind = createKind("generator-reduce-from");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
7
|
+
function reduceFrom(value) {
|
|
8
|
+
return generatorReduceFromKind.addTo(wrapValue(value));
|
|
9
|
+
}
|
|
10
10
|
function reduce(...args) {
|
|
11
11
|
if (args.length === 2) {
|
|
12
|
-
const [
|
|
13
|
-
return (iterator) => reduce(iterator,
|
|
12
|
+
const [fromValue, theFunction] = args;
|
|
13
|
+
return (iterator) => reduce(iterator, fromValue, theFunction);
|
|
14
14
|
}
|
|
15
|
-
const [iterator,
|
|
16
|
-
let lastValue = unwrap(
|
|
17
|
-
? getStartValue(getStartValueParams)
|
|
18
|
-
: getStartValue);
|
|
15
|
+
const [iterator, fromValue, theFunction] = args;
|
|
16
|
+
let lastValue = unwrap(fromValue);
|
|
19
17
|
let index = 0;
|
|
20
18
|
for (const element of iterator) {
|
|
21
19
|
const result = theFunction({
|
|
@@ -37,4 +35,4 @@ function reduce(...args) {
|
|
|
37
35
|
return lastValue;
|
|
38
36
|
}
|
|
39
37
|
|
|
40
|
-
export { reduce };
|
|
38
|
+
export { reduce, reduceFrom };
|
package/dist/index.cjs
CHANGED
|
@@ -31,6 +31,8 @@ var whenNot = require('./common/whenNot.cjs');
|
|
|
31
31
|
var equal = require('./common/equal.cjs');
|
|
32
32
|
var not = require('./common/not.cjs');
|
|
33
33
|
var isType = require('./common/isType.cjs');
|
|
34
|
+
var and = require('./common/and.cjs');
|
|
35
|
+
var or = require('./common/or.cjs');
|
|
34
36
|
var index = require('./array/index.cjs');
|
|
35
37
|
var index$1 = require('./number/index.cjs');
|
|
36
38
|
var index$2 = require('./either/index.cjs');
|
|
@@ -78,6 +80,8 @@ exports.whenNot = whenNot.whenNot;
|
|
|
78
80
|
exports.equal = equal.equal;
|
|
79
81
|
exports.not = not.not;
|
|
80
82
|
exports.isType = isType.isType;
|
|
83
|
+
exports.and = and.and;
|
|
84
|
+
exports.or = or.or;
|
|
81
85
|
exports.A = index;
|
|
82
86
|
exports.DArray = index;
|
|
83
87
|
exports.DNumber = index$1;
|
package/dist/index.mjs
CHANGED
|
@@ -29,6 +29,8 @@ export { whenNot } from './common/whenNot.mjs';
|
|
|
29
29
|
export { equal } from './common/equal.mjs';
|
|
30
30
|
export { not } from './common/not.mjs';
|
|
31
31
|
export { isType } from './common/isType.mjs';
|
|
32
|
+
export { and } from './common/and.mjs';
|
|
33
|
+
export { or } from './common/or.mjs';
|
|
32
34
|
import * as index from './array/index.mjs';
|
|
33
35
|
export { index as A };
|
|
34
36
|
export { index as DArray };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { type EligibleEqual, type MaybeArray } from "../common";
|
|
2
|
-
|
|
3
|
-
export declare function discriminate<GenericInput extends object, GenericKey extends GetPropsWithValueExtends<GenericInput, EligibleEqual>, GenericValue extends EligibleEqual>(key: GenericKey, value: (MaybeArray<(GenericValue & GenericInput[GenericKey])> | MaybeArray<GenericInput[GenericKey]>)): (input: GenericInput) => input is Extract<GenericInput, {
|
|
2
|
+
export declare function discriminate<GenericInput extends object, GenericKey extends keyof GenericInput, GenericValue extends EligibleEqual>(key: GenericKey, value: (MaybeArray<(GenericValue & Extract<GenericInput[GenericKey], EligibleEqual>)> | MaybeArray<Extract<GenericInput[GenericKey], EligibleEqual>>)): (input: GenericInput) => input is Extract<GenericInput, {
|
|
4
3
|
[Prop in GenericKey]: GenericValue;
|
|
5
4
|
}>;
|
|
6
|
-
export declare function discriminate<GenericInput extends object, GenericKey extends
|
|
5
|
+
export declare function discriminate<GenericInput extends object, GenericKey extends keyof GenericInput, GenericValue extends EligibleEqual>(input: GenericInput, key: GenericKey, value: (MaybeArray<(GenericValue & Extract<GenericInput[GenericKey], EligibleEqual>)> | MaybeArray<Extract<GenericInput[GenericKey], EligibleEqual>>)): input is Extract<GenericInput, {
|
|
7
6
|
[Prop in GenericKey]: GenericValue;
|
|
8
7
|
}>;
|
package/dist/string/index.cjs
CHANGED
|
@@ -32,6 +32,7 @@ var repeat = require('./repeat.cjs');
|
|
|
32
32
|
var normalize = require('./normalize.cjs');
|
|
33
33
|
var test = require('./test.cjs');
|
|
34
34
|
var isIn = require('./isIn.cjs');
|
|
35
|
+
var length = require('./length.cjs');
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
|
|
@@ -67,3 +68,4 @@ exports.repeat = repeat.repeat;
|
|
|
67
68
|
exports.normalize = normalize.normalize;
|
|
68
69
|
exports.test = test.test;
|
|
69
70
|
exports.isIn = isIn.isIn;
|
|
71
|
+
exports.length = length.length;
|
package/dist/string/index.d.ts
CHANGED
package/dist/string/index.mjs
CHANGED