Socket
Socket
Sign inDemoInstall

ts-pattern

Package Overview
Dependencies
Maintainers
1
Versions
151
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ts-pattern - npm Package Compare versions

Comparing version 2.1.0 to 2.1.1-next.0

11

lib/types/DistributeUnions.d.ts

@@ -1,2 +0,2 @@

import type { IsAny, Cast, Values, Flatten, IsUnion, Slice, Drop, Iterator, Next } from './helpers';
import type { IsAny, Cast, Values, Flatten, IsUnion, Slice, Drop, Iterator, Next, IsPlainObject, Length } from './helpers';
/**

@@ -39,3 +39,3 @@ * DistributeUnions takes a data structure of type `a`

*/
export declare type FindUnions<a, path extends PropertyKey[] = []> = IsUnion<a> extends true ? [
export declare type FindUnions<a, path extends PropertyKey[] = []> = Length<path> extends 3 ? [] : IsUnion<a> extends true ? [
{

@@ -63,4 +63,7 @@ cases: a extends any ? {

...FindUnions<a3, [...path, 2]>
] : a extends [infer a1, infer a2] ? [...FindUnions<a1, [...path, 0]>, ...FindUnions<a2, [...path, 1]>] : [] : a extends Set<any> ? [] : a extends Map<any, any> ? [] : a extends object ? Flatten<Values<{
[k in keyof Required<a>]: FindUnions<NonNullable<a[k]>, [...path, k]>;
] : a extends [infer a1, infer a2] ? [...FindUnions<a1, [...path, 0]>, ...FindUnions<a2, [...path, 1]>] : [] : a extends Set<any> ? [] : a extends Map<any, any> ? [] : IsPlainObject<a> extends true ? Flatten<Values<{
[k in keyof Required<a>]: FindUnions<NonNullable<a[k]>, [
...path,
k
]>;
}>> : [];

@@ -67,0 +70,0 @@ export declare type Distribute<unions extends any[]> = unions extends [

import type { PatternType, __ } from '../PatternType';
import type { Primitives } from './Pattern';
import type { ExcludeIfContainsNever, LeastUpperBound } from './helpers';
import type { ExcludeIfContainsNever, IsPlainObject, LeastUpperBound } from './helpers';
export declare type ExtractPreciseValue<a, b> = ExcludeIfContainsNever<b extends [] ? [] : b extends typeof __ ? a : b extends {

@@ -22,4 +22,4 @@ valueKind: PatternType.Not;

ExtractPreciseValue<a3, b3>
] : LeastUpperBound<a, b> : b extends [infer b1, infer b2] ? a extends [infer a1, infer a2] ? [ExtractPreciseValue<a1, b1>, ExtractPreciseValue<a2, b2>] : LeastUpperBound<a, b> : ExtractPreciseValue<a1, b1>[] : LeastUpperBound<a, b> : b extends Map<infer bk, infer bv> ? a extends Map<infer ak, infer av> ? Map<ExtractPreciseValue<ak, bk>, ExtractPreciseValue<av, bv>> : LeastUpperBound<a, b> : b extends Set<infer bv> ? a extends Set<infer av> ? Set<ExtractPreciseValue<av, bv>> : LeastUpperBound<a, b> : b extends object ? a extends any[] | Set<any> | Map<any, any> | Primitives ? LeastUpperBound<a, b> : b extends a ? b : a extends b ? a : {
] : LeastUpperBound<a, b> : b extends [infer b1, infer b2] ? a extends [infer a1, infer a2] ? [ExtractPreciseValue<a1, b1>, ExtractPreciseValue<a2, b2>] : LeastUpperBound<a, b> : ExtractPreciseValue<a1, b1>[] : LeastUpperBound<a, b> : b extends Map<infer bk, infer bv> ? a extends Map<infer ak, infer av> ? Map<ExtractPreciseValue<ak, bk>, ExtractPreciseValue<av, bv>> : LeastUpperBound<a, b> : b extends Set<infer bv> ? a extends Set<infer av> ? Set<ExtractPreciseValue<av, bv>> : LeastUpperBound<a, b> : IsPlainObject<b> extends true ? a extends any[] | Set<any> | Map<any, any> | Primitives ? LeastUpperBound<a, b> : b extends a ? b : a extends b ? a : {
[k in keyof Required<a>]: k extends keyof b ? ExtractPreciseValue<a[k], b[k]> : a[k];
} : LeastUpperBound<a, b>>;

@@ -16,3 +16,3 @@ export declare type ValueOf<a> = a extends any[] ? a[number] : a[keyof a];

**/
export declare type ExcludeIfContainsNever<a> = a extends Map<any, any> | Set<any> ? a : a extends any[] ? ExcludeNeverArray<a> : a extends object ? ExcludeNeverObject<a> : a;
export declare type ExcludeIfContainsNever<a> = a extends Map<any, any> | Set<any> ? a : a extends any[] ? ExcludeNeverArray<a> : IsPlainObject<a> extends true ? ExcludeNeverObject<Cast<a, object>> : a;
declare type ExcludeNeverArray<a extends any[]> = (a[0] extends never ? false : true) | (a[1] extends never ? false : true) | (a[2] extends never ? false : true) | (a[3] extends never ? false : true) | (a[4] extends never ? false : true) extends true ? a : never;

@@ -28,3 +28,3 @@ declare type ExcludeNeverObject<a extends object> = {

export declare type IsUnion<a> = [a] extends [UnionToIntersection<a>] ? false : true;
export declare type ContainsUnion<a> = IsUnion<a> extends true ? true : a extends object ? false extends ValueOf<{
export declare type ContainsUnion<a> = IsUnion<a> extends true ? true : IsPlainObject<a> extends true ? false extends ValueOf<{
[k in keyof a]: ContainsUnion<a[k]>;

@@ -36,3 +36,3 @@ }> ? false : true : false;

declare type RemoveNeverKeys<o> = Omit<o, NeverKeys<o>>;
export declare type ExcludeUnion<a> = IsUnion<a> extends true ? never : a extends object ? RemoveNeverKeys<{
export declare type ExcludeUnion<a> = IsUnion<a> extends true ? never : IsPlainObject<a> extends true ? RemoveNeverKeys<{
[k in keyof a]: ExcludeUnion<a[k]>;

@@ -52,2 +52,6 @@ }> : a;

export declare type Drop<xs extends any[], n extends any[]> = Length<n> extends 0 ? xs : xs extends [any, ...(infer tail)] ? Drop<tail, Prev<n>> : [];
declare type BuiltInObjects = Function | Error | Date | RegExp | Generator | {
readonly [Symbol.toStringTag]: string;
};
export declare type IsPlainObject<o> = o extends object ? o extends BuiltInObjects ? false : true : false;
export {};
import type { PatternType, __ } from '../PatternType';
import { IsPlainObject } from './helpers';
import type { SelectPattern, GuardPattern, NotPattern, Primitives } from './Pattern';

@@ -22,4 +23,4 @@ /**

InvertPattern<pe>
] : p extends [infer pb, infer pc, infer pd] ? [InvertPattern<pb>, InvertPattern<pc>, InvertPattern<pd>] : p extends [infer pb, infer pc] ? [InvertPattern<pb>, InvertPattern<pc>] : InvertPattern<pp>[] : p extends Map<infer pk, infer pv> ? Map<pk, InvertPattern<pv>> : p extends Set<infer pv> ? Set<InvertPattern<pv>> : p extends object ? {
] : p extends [infer pb, infer pc, infer pd] ? [InvertPattern<pb>, InvertPattern<pc>, InvertPattern<pd>] : p extends [infer pb, infer pc] ? [InvertPattern<pb>, InvertPattern<pc>] : InvertPattern<pp>[] : p extends Map<infer pk, infer pv> ? Map<pk, InvertPattern<pv>> : p extends Set<infer pv> ? Set<InvertPattern<pv>> : IsPlainObject<p> extends true ? {
[k in keyof p]: InvertPattern<p[k]>;
} : p;
import type { __, PatternType } from '../PatternType';
import { IsPlainObject } from './helpers';
export declare type Primitives = number | boolean | string | undefined | null | symbol | bigint;

@@ -26,3 +27,3 @@ /**

*/
export declare type Pattern<a> = SelectPattern<string> | GuardPattern<a> | NotPattern<a | any> | WildCardPattern<a> | (a extends Primitives ? a : a extends (infer b)[] ? a extends [infer b, infer c, infer d, infer e, infer f] ? [Pattern<b>, Pattern<c>, Pattern<d>, Pattern<e>, Pattern<f>] : a extends [infer b, infer c, infer d, infer e] ? [Pattern<b>, Pattern<c>, Pattern<d>, Pattern<e>] : a extends [infer b, infer c, infer d] ? [Pattern<b>, Pattern<c>, Pattern<d>] : a extends [infer b, infer c] ? [Pattern<b>, Pattern<c>] : [] | [Pattern<b>] | [Pattern<b>, Pattern<b>] | [Pattern<b>, Pattern<b>, Pattern<b>] | [Pattern<b>, Pattern<b>, Pattern<b>, Pattern<b>] | [Pattern<b>, Pattern<b>, Pattern<b>, Pattern<b>, Pattern<b>] : a extends Map<infer k, infer v> ? Map<k, Pattern<v>> : a extends Set<infer v> ? Set<Pattern<v>> : a extends object ? {
export declare type Pattern<a> = SelectPattern<string> | GuardPattern<a> | NotPattern<a | any> | WildCardPattern<a> | (a extends Primitives ? a : a extends (infer b)[] ? a extends [infer b, infer c, infer d, infer e, infer f] ? [Pattern<b>, Pattern<c>, Pattern<d>, Pattern<e>, Pattern<f>] : a extends [infer b, infer c, infer d, infer e] ? [Pattern<b>, Pattern<c>, Pattern<d>, Pattern<e>] : a extends [infer b, infer c, infer d] ? [Pattern<b>, Pattern<c>, Pattern<d>] : a extends [infer b, infer c] ? [Pattern<b>, Pattern<c>] : [] | [Pattern<b>] | [Pattern<b>, Pattern<b>] | [Pattern<b>, Pattern<b>, Pattern<b>] | [Pattern<b>, Pattern<b>, Pattern<b>, Pattern<b>] | [Pattern<b>, Pattern<b>, Pattern<b>, Pattern<b>, Pattern<b>] : a extends Map<infer k, infer v> ? Map<k, Pattern<v>> : a extends Set<infer v> ? Set<Pattern<v>> : IsPlainObject<a> extends true ? {
[k in keyof a]?: Pattern<a[k]>;

@@ -56,5 +57,5 @@ } : a);

ExhaustivePattern<b>
] : a extends Map<infer k, infer v> ? Map<k, ExhaustivePattern<v>> : a extends Set<infer v> ? Set<ExhaustivePattern<v>> : a extends object ? {
] : a extends Map<infer k, infer v> ? Map<k, ExhaustivePattern<v>> : a extends Set<infer v> ? Set<ExhaustivePattern<v>> : IsPlainObject<a> extends true ? {
[k in keyof a]?: ExhaustivePattern<a[k]>;
} : a);
export {};
{
"name": "ts-pattern",
"version": "2.1.0",
"version": "2.1.1-next.0",
"description": "Typescript pattern matching library",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -65,2 +65,4 @@ <h1 align="center">ts-pattern</h1>

⚠️ `ts-pattern@2` requires TypeScript >= v4. If you are using TypeScript v3, please install `ts-pattern@1.1.0`.
# Documentation

@@ -67,0 +69,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc