Returns {
__exprs: [];
__patterns: [];
with<P, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<P>>,
): {
__exprs: [TExpr];
__patterns: [ExtractPattern<P>];
with<P, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<P>>,
): {
__exprs: [TExpr, TExpr];
__patterns: [ExtractPattern<P>, ExtractPattern<P>];
with<P, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<P>>,
): {
__exprs: [TExpr, TExpr, TExpr];
__patterns: [ExtractPattern<P>, ExtractPattern<P>, ExtractPattern<P>];
with<P, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<(...)>>,
): {
__exprs: [(...), (...), (...), (...)];
__patterns: [(...), (...), (...), (...)];
with<P, TExpr = ExtractPattern<(...)>>(
pattern: P,
expression?: (...) | (...),
): (...) & (...) & (...);
} & { default<TExpr>(expression: Expr<(...), (...)>): (...) & (...) } & (
((...) extends (...) ? (...) : (...)) extends true
? ExecMatchBuilder<(...), (...)>
: {}
);
} & {
default<TExpr>(
expression: Expr<
TExpr,
FilterUnion<FilterUnion<(...), (...)>, ExtractPattern<(...)>>,
>,
): {
__exprs: [(...), (...), (...), (...)];
__patterns: [(...), (...), (...), (...)];
with<P extends any, TExpr = ExtractPattern<(...)>>(
pattern: P,
expression?: (...) | (...),
): (...) & (...);
} & ExecMatchBuilder<
[(...), (...), (...), (...)],
[(...), (...), (...), (...)],
>;
} & (
(
[FilterUnion<(...), (...)>] extends [never]
? true
: [(...)] extends [(...)] ? true : false
) extends true
? ExecMatchBuilder<
[TExpr, TExpr, TExpr],
[ExtractPattern<(...)>, ExtractPattern<(...)>, ExtractPattern<(...)>],
>
: {}
);
} & {
default<TExpr>(
expression: Expr<
TExpr,
FilterUnion<FilterUnion<T, ExtractPattern<P>>, ExtractPattern<P>>,
>,
): {
__exprs: [TExpr, TExpr, TExpr];
__patterns: [ExtractPattern<P>, ExtractPattern<P>, unknown];
with<P extends any, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<(...)>>,
): {
__exprs: [(...), (...), (...), (...)];
__patterns: [(...), (...), (...), (...)];
with<P extends any, TExpr = ExtractPattern<(...)>>(
pattern: P,
expression?: (...) | (...),
): (...) & (...);
} & ExecMatchBuilder<
[(...), (...), (...), (...)],
[(...), (...), (...), (...)],
>;
} & ExecMatchBuilder<
[TExpr, TExpr, TExpr],
[ExtractPattern<P>, ExtractPattern<P>, unknown],
>;
} & (
(
[
FilterUnion<
FilterUnion<T, ExtractPattern<(...)>>,
ExtractPattern<P>,
>,
] extends [never]
? true
: [FilterUnion<FilterUnion<(...), (...)>, (...) | (...)>] extends [
never,
]
? true
: false
) extends true
? ExecMatchBuilder<
[TExpr, TExpr],
[ExtractPattern<P>, ExtractPattern<P>],
>
: {}
);
} & {
default<TExpr>(
expression: Expr<TExpr, FilterUnion<T, ExtractPattern<P>>>,
): {
__exprs: [TExpr, TExpr];
__patterns: [ExtractPattern<P>, unknown];
with<P extends any, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<P>>,
): {
__exprs: [TExpr, TExpr, TExpr];
__patterns: [ExtractPattern<P>, unknown, ExtractPattern<P>];
with<P extends any, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<(...)>>,
): {
__exprs: [(...), (...), (...), (...)];
__patterns: [(...), (...), (...), (...)];
with<P extends any, TExpr = ExtractPattern<(...)>>(
pattern: P,
expression?: (...) | (...),
): (...) & (...);
} & ExecMatchBuilder<
[(...), (...), (...), (...)],
[(...), (...), (...), (...)],
>;
} & ExecMatchBuilder<
[TExpr, TExpr, TExpr],
[ExtractPattern<P>, unknown, ExtractPattern<P>],
>;
} & ExecMatchBuilder<[TExpr, TExpr], [ExtractPattern<P>, unknown]>;
} & (
(
[FilterUnion<T, ExtractPattern<P>>] extends [never]
? true
: [FilterUnion<FilterUnion<T, ExtractPattern<P>>, ExtractPattern<P>>] extends [
never,
]
? true
: false
) extends true
? ExecMatchBuilder<[TExpr], [ExtractPattern<P>]>
: {}
);
} & {
default<TExpr>(
expression: Expr<TExpr, T>,
): {
__exprs: [TExpr];
__patterns: [unknown];
with<P extends any, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<P>>,
): {
__exprs: [TExpr, TExpr];
__patterns: [unknown, ExtractPattern<P>];
with<P extends any, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<P>>,
): {
__exprs: [TExpr, TExpr, TExpr];
__patterns: [unknown, ExtractPattern<P>, ExtractPattern<P>];
with<P extends any, TExpr = ExtractPattern<P>>(
pattern: P,
expression?: Expr<TExpr, ExtractPattern<(...)>>,
): {
__exprs: [(...), (...), (...), (...)];
__patterns: [(...), (...), (...), (...)];
with<P extends any, TExpr = ExtractPattern<(...)>>(
pattern: P,
expression?: (...) | (...),
): (...) & (...);
} & ExecMatchBuilder<
[(...), (...), (...), (...)],
[(...), (...), (...), (...)],
>;
} & ExecMatchBuilder<
[TExpr, TExpr, TExpr],
[unknown, ExtractPattern<P>, ExtractPattern<P>],
>;
} & ExecMatchBuilder<[TExpr, TExpr], [unknown, ExtractPattern<P>]>;
} & ExecMatchBuilder<[TExpr], [unknown]>;
} & (
(
[T] extends [never]
? true
: [FilterUnion<T, never>] extends [never] ? true : false
) extends true
? ExecMatchBuilder<[], []>
: {}
)
A new pattern matcher instance
Create a new reusable pattern matcher object