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.5 to 2.1.6

22

lib/index.js

@@ -157,12 +157,16 @@ "use strict";

return !matchPattern(pattern['@ts-pattern/__pattern'])(value);
if (isListPattern(pattern) && isArray(value))
return value.every(function (v) { return matchPattern(pattern[0])(v); });
if (isListPattern(pattern))
return isArray(value)
? value.every(function (v) { return matchPattern(pattern[0])(v); })
: false;
if (typeof pattern !== typeof value)
return false;
if (isArray(pattern) && isArray(value)) {
return pattern.length === value.length
if (isArray(pattern)) {
return isArray(value) && pattern.length === value.length
? pattern.every(function (subPattern, i) { return matchPattern(subPattern)(value[i]); })
: false;
}
if (value instanceof Map && pattern instanceof Map) {
if (pattern instanceof Map) {
if (!(value instanceof Map))
return false;
return __spreadArray([], __read(pattern.keys())).every(function (key) {

@@ -172,3 +176,5 @@ return matchPattern(pattern.get(key))(value.get(key));

}
if (value instanceof Set && pattern instanceof Set) {
if (pattern instanceof Set) {
if (!(value instanceof Set))
return false;
var patternValues = __spreadArray([], __read(pattern.values()));

@@ -186,3 +192,5 @@ var allValues_1 = __spreadArray([], __read(value.values()));

}
if (isObject(value) && isObject(pattern)) {
if (isObject(pattern)) {
if (!isObject(value))
return false;
return Object.keys(pattern).every(function (k) {

@@ -189,0 +197,0 @@ // @ts-ignore

@@ -12,3 +12,15 @@ import type { NotPattern, Primitives } from './Pattern';

*/
unknown extends b ? a : IsAny<a> extends true ? b : ExcludeIfContainsNever<b extends [] ? [] : b extends NotPattern<infer b1> ? Exclude<a, b1> : b extends (infer bItem)[] ? a extends (infer aItem)[] ? b extends [infer b1, infer b2, infer b3, infer b4, infer b5] ? a extends [infer a1, infer a2, infer a3, infer a4, infer a5] ? [
unknown extends b ? a : IsAny<a> extends true ? b : ExcludeIfContainsNever<b extends readonly [] ? [] : b extends NotPattern<infer b1> ? Exclude<a, b1> : b extends readonly (infer bItem)[] ? a extends readonly (infer aItem)[] ? b extends readonly [
infer b1,
infer b2,
infer b3,
infer b4,
infer b5
] ? a extends readonly [
infer a1,
infer a2,
infer a3,
infer a4,
infer a5
] ? [
ExtractPreciseValue<a1, b1>,

@@ -19,3 +31,3 @@ ExtractPreciseValue<a2, b2>,

ExtractPreciseValue<a5, b5>
] : LeastUpperBound<a, b> : b extends [infer b1, infer b2, infer b3, infer b4] ? a extends [infer a1, infer a2, infer a3, infer a4] ? [
] : LeastUpperBound<a, b> : b extends readonly [infer b1, infer b2, infer b3, infer b4] ? a extends readonly [infer a1, infer a2, infer a3, infer a4] ? [
ExtractPreciseValue<a1, b1>,

@@ -25,8 +37,8 @@ ExtractPreciseValue<a2, b2>,

ExtractPreciseValue<a4, b4>
] : LeastUpperBound<a, b> : b extends [infer b1, infer b2, infer b3] ? a extends [infer a1, infer a2, infer a3] ? [
] : LeastUpperBound<a, b> : b extends readonly [infer b1, infer b2, infer b3] ? a extends readonly [infer a1, infer a2, infer a3] ? [
ExtractPreciseValue<a1, b1>,
ExtractPreciseValue<a2, b2>,
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<aItem, bItem>[] : 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 : {
] : LeastUpperBound<a, b> : b extends readonly [infer b1, infer b2] ? a extends readonly [infer a1, infer a2] ? [ExtractPreciseValue<a1, b1>, ExtractPreciseValue<a2, b2>] : LeastUpperBound<a, b> : ExtractPreciseValue<aItem, bItem>[] : 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>>;

@@ -9,3 +9,3 @@ import type { __ } from '../PatternType';

*/
export declare type InvertPattern<p> = p extends typeof __.number ? number : p extends typeof __.string ? string : p extends typeof __.boolean ? boolean : p extends SelectPattern<string> ? unknown : p extends typeof __ ? unknown : p extends GuardPattern<any, infer p1> ? p1 : p extends NotPattern<infer a1> ? NotPattern<InvertPattern<a1>> : p extends Primitives ? p : p extends (infer pp)[] ? p extends [infer p1, infer p2, infer p3, infer p4, infer p5] ? [
export declare type InvertPattern<p> = p extends typeof __.number ? number : p extends typeof __.string ? string : p extends typeof __.boolean ? boolean : p extends SelectPattern<string> ? unknown : p extends typeof __ ? unknown : p extends GuardPattern<any, infer p1> ? p1 : p extends NotPattern<infer a1> ? NotPattern<InvertPattern<a1>> : p extends Primitives ? p : p extends readonly (infer pp)[] ? p extends readonly [infer p1, infer p2, infer p3, infer p4, infer p5] ? [
InvertPattern<p1>,

@@ -16,3 +16,3 @@ InvertPattern<p2>,

InvertPattern<p5>
] : p extends [infer p1, infer p2, infer p3, infer p4] ? [
] : p extends readonly [infer p1, infer p2, infer p3, infer p4] ? [
InvertPattern<p1>,

@@ -22,3 +22,3 @@ InvertPattern<p2>,

InvertPattern<p4>
] : p extends [infer p1, infer p2, infer p3] ? [InvertPattern<p1>, InvertPattern<p2>, InvertPattern<p3>] : p extends [infer p1, infer p2] ? [InvertPattern<p1>, InvertPattern<p2>] : 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 ? {
] : p extends readonly [infer p1, infer p2, infer p3] ? [InvertPattern<p1>, InvertPattern<p2>, InvertPattern<p3>] : p extends readonly [infer p1, infer p2] ? [InvertPattern<p1>, InvertPattern<p2>] : 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]>;

@@ -35,3 +35,3 @@ } : p;

*/
export declare type InvertNotPattern<p, i> = p extends NotPattern<infer p1> ? Exclude<i, p1> : p extends (infer pp)[] ? i extends (infer ii)[] ? p extends [infer p1, infer p2, infer p3, infer p4, infer p5] ? i extends [infer i1, infer i2, infer i3, infer i4, infer i5] ? [
export declare type InvertNotPattern<p, i> = p extends NotPattern<infer p1> ? Exclude<i, p1> : p extends readonly (infer pp)[] ? i extends readonly (infer ii)[] ? p extends readonly [infer p1, infer p2, infer p3, infer p4, infer p5] ? i extends readonly [infer i1, infer i2, infer i3, infer i4, infer i5] ? [
InvertNotPattern<p1, i1>,

@@ -42,3 +42,3 @@ InvertNotPattern<p2, i2>,

InvertNotPattern<p5, i5>
] : p : p extends [infer p1, infer p2, infer p3, infer p4] ? i extends [infer i1, infer i2, infer i3, infer i4] ? [
] : p : p extends readonly [infer p1, infer p2, infer p3, infer p4] ? i extends readonly [infer i1, infer i2, infer i3, infer i4] ? [
InvertNotPattern<p1, i1>,

@@ -48,8 +48,8 @@ InvertNotPattern<p2, i2>,

InvertNotPattern<p4, i4>
] : p : p extends [infer p1, infer p2, infer p3] ? i extends [infer i1, infer i2, infer i3] ? [
] : p : p extends readonly [infer p1, infer p2, infer p3] ? i extends readonly [infer i1, infer i2, infer i3] ? [
InvertNotPattern<p1, i1>,
InvertNotPattern<p2, i2>,
InvertNotPattern<p3, i3>
] : p : p extends [infer p1, infer p2] ? i extends [infer i1, infer i2] ? [InvertNotPattern<p1, i1>, InvertNotPattern<p2, i2>] : p : InvertNotPattern<pp, ii>[] : p : p extends Map<infer pk, infer pv> ? i extends Map<any, infer iv> ? Map<pk, InvertNotPattern<pv, iv>> : p : p extends Set<infer pv> ? i extends Set<infer iv> ? Set<InvertNotPattern<pv, iv>> : p : IsPlainObject<p> extends true ? IsPlainObject<i> extends true ? {
] : p : p extends readonly [infer p1, infer p2] ? i extends readonly [infer i1, infer i2] ? [InvertNotPattern<p1, i1>, InvertNotPattern<p2, i2>] : p : InvertNotPattern<pp, ii>[] : p : p extends Map<infer pk, infer pv> ? i extends Map<any, infer iv> ? Map<pk, InvertNotPattern<pv, iv>> : p : p extends Set<infer pv> ? i extends Set<infer iv> ? Set<InvertNotPattern<pv, iv>> : p : IsPlainObject<p> extends true ? IsPlainObject<i> extends true ? {
[k in keyof p]: k extends keyof i ? InvertNotPattern<p[k], i[k]> : p[k];
} : p : p;

@@ -37,4 +37,4 @@ import type { __, PatternType } from '../PatternType';

*/
export declare type Pattern<a> = typeof __ | 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]>;
export declare type Pattern<a> = typeof __ | 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] ? readonly [Pattern<b>, Pattern<c>, Pattern<d>, Pattern<e>, Pattern<f>] : a extends [infer b, infer c, infer d, infer e] ? readonly [Pattern<b>, Pattern<c>, Pattern<d>, Pattern<e>] : a extends [infer b, infer c, infer d] ? readonly [Pattern<b>, Pattern<c>, Pattern<d>] : a extends [infer b, infer c] ? readonly [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 ? {
readonly [k in keyof a]?: Pattern<a[k]>;
} : a);

@@ -45,3 +45,3 @@ /**

*/
export declare type ExhaustivePattern<a> = typeof __ | SelectPattern<string> | 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] ? [
export declare type ExhaustivePattern<a> = typeof __ | SelectPattern<string> | NotPattern<a | any> | WildCardPattern<a> | (a extends Primitives ? a : a extends readonly (infer b)[] ? a extends readonly [infer b, infer c, infer d, infer e, infer f] ? readonly [
ExhaustivePattern<b>,

@@ -52,3 +52,3 @@ ExhaustivePattern<c>,

ExhaustivePattern<f>
] : a extends [infer b, infer c, infer d, infer e] ? [
] : a extends readonly [infer b, infer c, infer d, infer e] ? readonly [
ExhaustivePattern<b>,

@@ -58,16 +58,24 @@ ExhaustivePattern<c>,

ExhaustivePattern<e>
] : a extends [infer b, infer c, infer d] ? [ExhaustivePattern<b>, ExhaustivePattern<c>, ExhaustivePattern<d>] : a extends [infer b, infer c] ? [ExhaustivePattern<b>, ExhaustivePattern<c>] : [] | [ExhaustivePattern<b>] | [ExhaustivePattern<b>, ExhaustivePattern<b>] | [ExhaustivePattern<b>, ExhaustivePattern<b>, ExhaustivePattern<b>] | [
] : a extends readonly [infer b, infer c, infer d] ? readonly [
ExhaustivePattern<b>,
ExhaustivePattern<c>,
ExhaustivePattern<d>
] : a extends readonly [infer b, infer c] ? readonly [ExhaustivePattern<b>, ExhaustivePattern<c>] : readonly [] | readonly [ExhaustivePattern<b>] | readonly [ExhaustivePattern<b>, ExhaustivePattern<b>] | readonly [
ExhaustivePattern<b>,
ExhaustivePattern<b>,
ExhaustivePattern<b>
] | [
] | readonly [
ExhaustivePattern<b>,
ExhaustivePattern<b>,
ExhaustivePattern<b>,
ExhaustivePattern<b>
] | readonly [
ExhaustivePattern<b>,
ExhaustivePattern<b>,
ExhaustivePattern<b>,
ExhaustivePattern<b>,
ExhaustivePattern<b>
] : 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]>;
readonly [k in keyof a]?: ExhaustivePattern<a[k]>;
} : a);
export {};
{
"name": "ts-pattern",
"version": "2.1.5",
"version": "2.1.6",
"description": "Typescript pattern matching library",

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

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