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.4 to 2.2.1-next.0

33

lib/index.js

@@ -58,19 +58,28 @@ "use strict";

*/
var builder = function (value, patterns) { return ({
"with": function (pattern) {
var builder = function (value, cases) { return ({
"with": function () {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var _a = __read(args
.slice(0, -1)
.reduce(function (_a, arg) {
var _b = __read(_a, 2), patterns = _b[0], predicates = _b[1];
return typeof arg === 'function'
? [patterns, __spreadArray(__spreadArray([], __read(predicates)), [arg])]
: [__spreadArray(__spreadArray([], __read(patterns)), [arg]), predicates];
}, [[], []]), 2), patterns = _a[0], predicates = _a[1];
var handler = args[args.length - 1];
var predicates = args.slice(0, -1);
var doesMatch = function (value) {
return Boolean(matchPattern(pattern)(value) &&
return Boolean(patterns.some(function (pattern) { return matchPattern(pattern)(value); }) &&
predicates.every(function (predicate) { return predicate(value); }));
};
return builder(value, __spreadArray(__spreadArray([], __read(patterns)), [
return builder(value, __spreadArray(__spreadArray([], __read(cases)), [
{
test: doesMatch,
handler: handler,
select: selectWithPattern(pattern)
select: function (value) {
return patterns.length === 1 ? selectWithPattern(patterns[0])(value) : {};
}
},

@@ -80,3 +89,3 @@ ]));

when: function (predicate, handler) {
return builder(value, __spreadArray(__spreadArray([], __read(patterns)), [
return builder(value, __spreadArray(__spreadArray([], __read(cases)), [
{

@@ -90,3 +99,3 @@ test: predicate,

otherwise: function (handler) {
return builder(value, __spreadArray(__spreadArray([], __read(patterns)), [
return builder(value, __spreadArray(__spreadArray([], __read(cases)), [
{

@@ -100,3 +109,3 @@ test: matchPattern(PatternType_1.__),

run: function () {
var entry = patterns.find(function (_a) {
var entry = cases.find(function (_a) {
var test = _a.test;

@@ -123,3 +132,3 @@ return test(value);

**/
exhaustive: function () { return builder(value, patterns); }
exhaustive: function () { return builder(value, cases); }
}); };

@@ -126,0 +135,0 @@ var isObject = function (value) {

import { DistributeMatchingUnions } from './DistributeUnions';
import { UnionToTuple } from './helpers';
export declare type DeepExclude<a, b> = Exclude<DistributeMatchingUnions<a, b>, b>;
export declare type ReduceDeepExclude<a, xs> = xs extends [infer head, ...infer tail] ? ReduceDeepExclude<DeepExclude<a, head>, tail> : a;
export declare type DeepExcludeMany<a, b> = ReduceDeepExclude<a, UnionToTuple<b>>;
import type { Pattern, GuardValue, ExhaustivePattern } from './Pattern';
import type { ExtractPreciseValue } from './ExtractPreciseValue';
import type { InvertNotPattern, InvertPattern } from './InvertPattern';
import type { DeepExclude } from './DeepExclude';
import type { DeepExclude, DeepExcludeMany } from './DeepExclude';
import type { WithDefault } from './helpers';

@@ -21,2 +21,3 @@ import type { FindSelected } from './FindSelected';

with<p extends Pattern<i>, c, invpattern = InvertPattern<p>, value = MatchedValue<i, invpattern>>(pattern: p, handler: (value: value, selections: FindSelected<value, p>) => PickReturnValue<o, c>): Match<i, PickReturnValue<o, c>>;
with<ps extends [ExhaustivePattern<i>, ...ExhaustivePattern<i>[]], c, p = ps[number], value = p extends any ? MatchedValue<i, InvertPattern<p>> : never>(...args: [...patterns: ps, handler: (value: value) => PickReturnValue<o, c>]): Match<i, PickReturnValue<o, c>>;
with<pat extends Pattern<i>, pred extends (value: MatchedValue<i, InvertPattern<pat>>) => unknown, c>(pattern: pat, predicate: pred, handler: (value: GuardValue<pred>, selections: FindSelected<i, pat>) => PickReturnValue<o, c>): Match<i, PickReturnValue<o, c>>;

@@ -68,2 +69,3 @@ with<pat extends Pattern<i>, pred extends (value: MatchedValue<i, InvertPattern<pat>>) => unknown, pred2 extends (value: GuardValue<pred>) => unknown, c>(pattern: pat, predicate: pred, predicate2: pred2, handler: (value: GuardValue<pred2>, selections: FindSelected<i, pat>) => PickReturnValue<o, c>): Match<i, PickReturnValue<o, c>>;

with<p extends ExhaustivePattern<i>, c, invpattern = InvertPattern<p>, value = MatchedValue<i, invpattern>>(pattern: p, handler: (value: value, selections: FindSelected<value, p>) => PickReturnValue<o, c>): ExhaustiveMatch<DeepExclude<distributedInput, InvertNotPattern<invpattern, value>>, i, PickReturnValue<o, c>>;
with<ps extends [ExhaustivePattern<i>, ...ExhaustivePattern<i>[]], c, p = ps[number], value = p extends any ? MatchedValue<i, InvertPattern<p>> : never>(...args: [...patterns: ps, handler: (value: value) => PickReturnValue<o, c>]): ExhaustiveMatch<DeepExcludeMany<distributedInput, p extends any ? InvertNotPattern<InvertPattern<p>, value> : never>, i, PickReturnValue<o, c>>;
/**

@@ -70,0 +72,0 @@ * ### Match.otherwise

{
"name": "ts-pattern",
"version": "2.1.4",
"version": "2.2.1-next.0",
"description": "Typescript pattern matching library",

@@ -41,3 +41,3 @@ "main": "lib/index.js",

"jest": "^26.6.3",
"prettier": "^2.0.5",
"prettier": "^2.2.1",
"rimraf": "^3.0.2",

@@ -44,0 +44,0 @@ "ts-jest": "^26.4.4",

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