@duplojs/utils 1.4.34 → 1.4.35
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/metadata.json +6 -0
- package/dist/pattern/types/complexMatchedValue/function.d.ts +8 -0
- package/dist/pattern/types/complexMatchedValue/index.d.ts +3 -1
- package/dist/pattern/types/complexMatchedValue/object.d.ts +3 -3
- package/dist/pattern/types/complexUnMatchedValue/array.d.ts +11 -4
- package/dist/pattern/types/complexUnMatchedValue/function.d.ts +8 -0
- package/dist/pattern/types/complexUnMatchedValue/getIncompleteUnion.d.ts +12 -1
- package/dist/pattern/types/complexUnMatchedValue/index.d.ts +9 -2
- package/dist/pattern/types/complexUnMatchedValue/object.d.ts +3 -3
- package/dist/pattern/types/pattern.d.ts +2 -2
- package/package.json +1 -1
package/dist/metadata.json
CHANGED
|
@@ -4401,6 +4401,9 @@
|
|
|
4401
4401
|
{
|
|
4402
4402
|
"name": "array.d.ts"
|
|
4403
4403
|
},
|
|
4404
|
+
{
|
|
4405
|
+
"name": "function.d.ts"
|
|
4406
|
+
},
|
|
4404
4407
|
{
|
|
4405
4408
|
"name": "index.d.ts"
|
|
4406
4409
|
},
|
|
@@ -4421,6 +4424,9 @@
|
|
|
4421
4424
|
{
|
|
4422
4425
|
"name": "array.d.ts"
|
|
4423
4426
|
},
|
|
4427
|
+
{
|
|
4428
|
+
"name": "function.d.ts"
|
|
4429
|
+
},
|
|
4424
4430
|
{
|
|
4425
4431
|
"name": "getIncompleteUnion.d.ts"
|
|
4426
4432
|
},
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AnyFunction, type IsEqual } from "../../../common";
|
|
2
|
+
export type ComplexMatchedFunction<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
|
|
3
|
+
Extract<GenericInput, AnyFunction>,
|
|
4
|
+
Extract<GenericPatternValue, AnyFunction>
|
|
5
|
+
] extends [
|
|
6
|
+
infer inferredInput extends AnyFunction,
|
|
7
|
+
infer inferredPatternValue extends AnyFunction
|
|
8
|
+
] ? Extract<inferredInput, inferredPatternValue> extends infer inferredValue ? IsEqual<inferredValue, never> extends true ? inferredPatternValue : inferredValue : never : never);
|
|
@@ -3,4 +3,6 @@ import { type ComplexMatchedObject } from "./object";
|
|
|
3
3
|
import { type ComplexMatchedArray } from "./array";
|
|
4
4
|
import { type PatternValueMaybeAll } from "../pattern";
|
|
5
5
|
import { type ComplexMatchedMaybeAll } from "./maybeAll";
|
|
6
|
-
|
|
6
|
+
import { type ComplexMatchedFunction } from "./function";
|
|
7
|
+
import { type AnyValue, type IsEqual } from "../../../common";
|
|
8
|
+
export type ComplexMatchedValue<GenericInput extends unknown, GenericPatternValue extends unknown> = (IsEqual<GenericInput, unknown> extends true ? AnyValue : GenericInput) extends infer InferredInput ? Exclude<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? (ComplexMatchedPrimitive<InferredInput, InferredPatternValue> | ComplexMatchedObject<InferredInput, InferredPatternValue> | ComplexMatchedArray<InferredInput, InferredPatternValue> | ComplexMatchedFunction<InferredInput, InferredPatternValue> | ComplexMatchedMaybeAll<InferredInput, GenericPatternValue>) : never : never;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type Adaptor, type SimplifyTopLevel, type IsEqual } from "../../../common";
|
|
1
|
+
import { type Adaptor, type SimplifyTopLevel, type IsEqual, type AnyFunction } from "../../../common";
|
|
2
2
|
import { type ComplexMatchedValue } from ".";
|
|
3
3
|
import { type GetPropsWithValue } from "../../../object";
|
|
4
4
|
export type ComplexMatchedObject<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
|
|
5
|
-
Exclude<Extract<GenericInput, object>, readonly any[]>,
|
|
6
|
-
Exclude<Extract<GenericPatternValue, object>, readonly any[]>
|
|
5
|
+
Exclude<Extract<GenericInput, object>, readonly any[] | AnyFunction>,
|
|
6
|
+
Exclude<Extract<GenericPatternValue, object>, readonly any[] | AnyFunction>
|
|
7
7
|
] extends [
|
|
8
8
|
infer InferredInput,
|
|
9
9
|
infer InferredPatternValue
|
|
@@ -5,15 +5,15 @@ type ComplexUnMatchedArrayTuple<GenericInput extends unknown, GenericPatternValu
|
|
|
5
5
|
Extract<GenericPatternValue, AnyTuple>
|
|
6
6
|
] extends [
|
|
7
7
|
infer InferredInput,
|
|
8
|
-
infer
|
|
9
|
-
] ? InferredInput : never);
|
|
8
|
+
infer InferredPatternValue
|
|
9
|
+
] ? IsEqual<InferredPatternValue, never> extends true ? never : InferredInput : never);
|
|
10
10
|
type ComplexUnMatchedTupleTuple<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
|
|
11
11
|
Extract<GenericInput, AnyTuple>,
|
|
12
12
|
Extract<GenericPatternValue, AnyTuple>
|
|
13
13
|
] extends [
|
|
14
14
|
infer InferredInput,
|
|
15
15
|
infer InferredPatternValue
|
|
16
|
-
] ? IsEqual<InferredPatternValue, never> extends true ?
|
|
16
|
+
] ? IsEqual<InferredPatternValue, never> extends true ? never : IsUnion<InferredPatternValue> extends true ? never : InferredInput extends InferredPatternValue ? never : [
|
|
17
17
|
InferredInput,
|
|
18
18
|
InferredPatternValue
|
|
19
19
|
] extends [
|
|
@@ -23,5 +23,12 @@ type ComplexUnMatchedTupleTuple<GenericInput extends unknown, GenericPatternValu
|
|
|
23
23
|
IsEqual<InferredResultFirst, never> extends true ? InferredInputFirst : InferredResultFirst,
|
|
24
24
|
...Adaptor<IsEqual<InferredResultRest, never> extends true ? InferredPatternValueRest : InferredResultRest, readonly any[]>
|
|
25
25
|
] : never : never : never : never);
|
|
26
|
-
|
|
26
|
+
type ComplexUnMatchedArrayArray<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
|
|
27
|
+
Exclude<Extract<GenericInput, readonly any[]>, AnyTuple>,
|
|
28
|
+
Exclude<Extract<GenericPatternValue, readonly any[]>, AnyTuple>
|
|
29
|
+
] extends [
|
|
30
|
+
infer InferredInput extends readonly any[],
|
|
31
|
+
infer InferredPatternValue extends readonly any[]
|
|
32
|
+
] ? IsEqual<InferredInput, never> extends true ? never : InferredInput[number] extends infer InferredInnerValue ? InferredInnerValue extends any ? Extract<InferredInnerValue, InferredPatternValue[number]> extends infer InferredObviousMatch ? IsEqual<InferredObviousMatch, never> extends true ? ComplexUnMatchedValue<InferredInnerValue, InferredPatternValue[number]> extends infer InferredValue ? IsEqual<InferredValue, never> extends true ? never : InferredInput : never : never : never : never : never : never);
|
|
33
|
+
export type ComplexUnMatchedArray<GenericInput extends unknown, GenericPatternValue extends unknown> = Exclude<GenericPatternValue, readonly []> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : (ComplexUnMatchedTupleTuple<GenericInput, InferredPatternValue> | ComplexUnMatchedArrayTuple<GenericInput, InferredPatternValue> | ComplexUnMatchedArrayArray<GenericInput, InferredPatternValue>) : never;
|
|
27
34
|
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AnyFunction } from "../../../common";
|
|
2
|
+
export type ComplexUnMatchedFunction<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
|
|
3
|
+
Extract<GenericInput, AnyFunction>,
|
|
4
|
+
Extract<GenericPatternValue, AnyFunction>
|
|
5
|
+
] extends [
|
|
6
|
+
infer inferredInput,
|
|
7
|
+
infer inferredPatternValue
|
|
8
|
+
] ? Exclude<inferredInput, inferredPatternValue> : never);
|
|
@@ -52,7 +52,18 @@ export type GetIncompleteUnion<GenericInput extends unknown, GenericPatternValue
|
|
|
52
52
|
] ? GetIncompleteUnion<InferredInput[number], InferredPatternValueFirst> extends infer InferredResultFirst ? FlatObject<{
|
|
53
53
|
"@duplojs/utils/[array.first": InferredResultFirst;
|
|
54
54
|
"@duplojs/utils/array.rest]": IsEqual<InferredResultFirst, {}> extends true ? GetIncompleteUnion<InferredInput, InferredPatternValueRest> : never;
|
|
55
|
-
}> : {} : {} : never) | (
|
|
55
|
+
}> : {} : {} : never) | ([
|
|
56
|
+
Exclude<Extract<GenericInput, readonly any[]>, AnyTuple>,
|
|
57
|
+
Exclude<Extract<GenericPatternValue, readonly any[]>, AnyTuple>
|
|
58
|
+
] extends [
|
|
59
|
+
infer InferredInput extends readonly any[],
|
|
60
|
+
infer InferredPatternValue extends readonly any[]
|
|
61
|
+
] ? Or<[
|
|
62
|
+
IsEqual<InferredPatternValue, never>,
|
|
63
|
+
IsEqual<InferredInput, never>
|
|
64
|
+
]> extends true ? never : IsEqual<Exclude<InferredInput[number], InferredPatternValue[number]>, never> extends true ? {} : {
|
|
65
|
+
"@duplojs/utils/[array]": true;
|
|
66
|
+
} : never) | (Extract<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? IsEqual<InferredPatternValue, never> extends true ? never : {
|
|
56
67
|
"@duplojs/utils/{maybeAll}": true;
|
|
57
68
|
} : never) | ([
|
|
58
69
|
Extract<GenericInput, readonly any[]>,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type UnionToTuple } from "../../../common";
|
|
1
|
+
import { type AnyValue, type IsEqual, type UnionToTuple } from "../../../common";
|
|
2
2
|
import { type GetIncompleteUnion } from "./getIncompleteUnion";
|
|
3
3
|
import { type ComplexUnMatchedPrimitive } from "./primitive";
|
|
4
4
|
import { type ComplexUnMatchedObject } from "./object";
|
|
@@ -6,4 +6,11 @@ import { type ComplexUnMatchedUnionObject } from "./unionObject";
|
|
|
6
6
|
import { type ComplexUnMatchedArray } from "./array";
|
|
7
7
|
import { type PatternValueMaybeAll } from "../pattern";
|
|
8
8
|
import { type ComplexUnMatchedMaybeAll } from "./maybeAll";
|
|
9
|
-
|
|
9
|
+
import { type ComplexUnMatchedFunction } from "./function";
|
|
10
|
+
export type ComplexUnMatchedValue<GenericInput extends unknown, GenericPatternValue extends unknown> = (IsEqual<GenericInput, unknown> extends true ? AnyValue : GenericInput) extends infer InferredInput ? (InferredInput extends any ? UnionToTuple<keyof GetIncompleteUnion<InferredInput, GenericPatternValue>>["length"] extends 0 | 1 ? never : InferredInput : never) extends infer InferredIncompleteUnionInput ? [
|
|
11
|
+
Exclude<InferredInput, InferredIncompleteUnionInput>,
|
|
12
|
+
Exclude<GenericPatternValue, PatternValueMaybeAll>
|
|
13
|
+
] extends [
|
|
14
|
+
infer InferredSortedInput,
|
|
15
|
+
infer InferredPatternValue
|
|
16
|
+
] ? (ComplexUnMatchedPrimitive<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedObject<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedArray<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedUnionObject<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedFunction<InferredSortedInput, InferredPatternValue> | ComplexUnMatchedMaybeAll<InferredSortedInput, GenericPatternValue> | InferredIncompleteUnionInput) : never : never : never;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type Adaptor, type SimplifyTopLevel, type IsEqual, type IsUnion, type NeverCoalescing, type RemoveReadonly } from "../../../common";
|
|
1
|
+
import { type Adaptor, type SimplifyTopLevel, type IsEqual, type IsUnion, type NeverCoalescing, type RemoveReadonly, type AnyFunction } from "../../../common";
|
|
2
2
|
import { type ComplexUnMatchedValue } from ".";
|
|
3
3
|
export type ComplexUnMatchedObject<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
|
|
4
|
-
Exclude<Extract<GenericInput, object>, readonly any[]>,
|
|
5
|
-
Exclude<Extract<GenericPatternValue, object>, readonly any[]>
|
|
4
|
+
Exclude<Extract<GenericInput, object>, readonly any[] | AnyFunction>,
|
|
5
|
+
Exclude<Extract<GenericPatternValue, object>, readonly any[] | AnyFunction>
|
|
6
6
|
] extends [
|
|
7
7
|
infer InferredInput,
|
|
8
8
|
infer InferredPatternValue
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MergeUnionTuple } from "../../array/types/mergeUnionTuple";
|
|
2
|
-
import { type AnyTuple, type Adaptor, type IsEqual, type ObjectKey, type WrappedValue } from "../../common";
|
|
2
|
+
import { type AnyTuple, type Adaptor, type IsEqual, type ObjectKey, type WrappedValue, type AnyValue } from "../../common";
|
|
3
3
|
export type EligiblePrimitiveMatch = string | number | bigint | boolean | undefined | null;
|
|
4
4
|
type PrimitivePattern<GenericInput extends unknown> = GenericInput extends EligiblePrimitiveMatch ? GenericInput : never;
|
|
5
5
|
type ObjectPattern<GenericInput extends unknown> = Exclude<GenericInput, readonly any[]> extends infer InferredInput ? [
|
|
@@ -25,7 +25,7 @@ export interface ToolPattern<GenericInput extends unknown = any, GenericPattern
|
|
|
25
25
|
[SymbolToolPatternFunction](input: GenericInput): boolean;
|
|
26
26
|
[SymbolToolPattern]: GenericPattern;
|
|
27
27
|
}
|
|
28
|
-
export type Pattern<GenericInput extends unknown = any> = (
|
|
28
|
+
export type Pattern<GenericInput extends unknown = any> = (IsEqual<GenericInput, unknown> extends true ? AnyValue : GenericInput) extends infer InferredInput ? (PredicatePattern<InferredInput> | ToolPattern<InferredInput> | PrimitivePattern<InferredInput> | ObjectPattern<InferredInput> | ArrayPattern<InferredInput>) : never;
|
|
29
29
|
declare const SymbolPatternValueMaybeAll: unique symbol;
|
|
30
30
|
type SymbolPatternValueMaybeAll = typeof SymbolPatternValueMaybeAll;
|
|
31
31
|
export interface PatternValueMaybeAll<GenericValue extends unknown = any> extends WrappedValue<GenericValue> {
|