Socket
Socket
Sign inDemoInstall

@effect/match

Package Overview
Dependencies
Maintainers
3
Versions
86
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@effect/match - npm Package Compare versions

Comparing version 0.20.4 to 0.20.5

26

index.d.ts

@@ -82,4 +82,11 @@ /**

* @category combinators
* @tsplus pipeable effect/match/Matcher whenAnd
* @since 1.0.0
* @tsplus location "@effect/match"
*/
export declare const whenAnd: <R, const P extends readonly (PatternPrimitive<R> | PatternBase<R>)[], B>(patterns: P, f: (_: ExtractMatch<R, SafeSchemaP<ResolvePred<UnionToIntersection<P[number]>>>>) => B) => <I, F, A, Pr>(self: Matcher<I, F, R, A, Pr>) => Matcher<I, AddWithout<F, SafeSchemaR<PredToSchema<UnionToIntersection<P[number]>>>>, ApplyFilters<I, AddWithout<F, SafeSchemaR<PredToSchema<UnionToIntersection<P[number]>>>>>, B | A, Pr>;
/**
* @category combinators
* @since 1.0.0
*/
export declare const discriminator: <D extends string>(field: D) => <R, P extends Tags<D, R> & (string | number | symbol | object | {}), B>(...pattern: [first: P, ...values: P[], f: (_: Extract<R, Record<D, P>>) => B]) => <I, F, A, Pr>(self: Matcher<I, F, R, A, Pr>) => Matcher<I, AddWithout<F, Extract<R, Record<D, P>>>, ApplyFilters<I, AddWithout<F, Extract<R, Record<D, P>>>>, B | A, Pr>;

@@ -161,3 +168,3 @@ /**

*/
export declare const is: <Literals extends readonly LiteralValue[]>(...literals: Literals) => Refinement<unknown, Literals[number]>;
export declare const is: <Literals extends ReadonlyArray<LiteralValue>>(...literals: Literals) => Refinement<unknown, Literals[number]>;
/**

@@ -186,2 +193,9 @@ * @category predicates

* @category predicates
* @tsplus static effect/match/Matcher.Ops defined
* @since 1.0.0
* @tsplus location "@effect/match"
*/
export declare const defined: <A>(u: unknown) => Refinement<A, A & {}>;
/**
* @category predicates
* @tsplus static effect/match/Matcher.Ops boolean

@@ -273,12 +287,12 @@ * @since 1.0.0

type PredicateA<A> = Predicate<A> | Refinement<A, A>;
type SafeSchemaP<A> = A extends SafeSchema<infer S, infer _> ? S : A extends Function ? A : A extends Record<string, any> ? {
type SafeSchemaP<A> = A extends never ? never : A extends SafeSchema<infer S, infer _> ? S : A extends Function ? A : A extends Record<string, any> ? {
[K in keyof A]: SafeSchemaP<A[K]>;
} : A;
type SafeSchemaR<A> = A extends SafeSchema<infer _, infer R> ? R : A extends Function ? A : A extends Record<string, any> ? {
type SafeSchemaR<A> = A extends never ? never : A extends SafeSchema<infer _, infer R> ? R : A extends Function ? A : A extends Record<string, any> ? {
[K in keyof A]: SafeSchemaR<A[K]>;
} : A;
type ResolvePred<A> = A extends Refinement<any, infer P> ? P : A extends Predicate<infer P> ? P : A extends SafeSchema<any> ? A : A extends Record<string, any> ? {
type ResolvePred<A> = A extends never ? never : A extends Refinement<any, infer P> ? P : A extends Predicate<infer P> ? P : A extends SafeSchema<any> ? A : A extends Record<string, any> ? {
[K in keyof A]: ResolvePred<A[K]>;
} : A;
type PredToSchema<A> = A extends Refinement<any, infer P> ? SafeSchema<P, P> : A extends Predicate<infer P> ? SafeSchema<P, never> : A extends SafeSchema<any> ? A : A extends Record<string, any> ? {
type PredToSchema<A> = A extends never ? never : A extends Refinement<any, infer P> ? SafeSchema<P, P> : A extends Predicate<infer P> ? SafeSchema<P, never> : A extends SafeSchema<any> ? A : A extends Record<string, any> ? {
[K in keyof A]: PredToSchema<A[K]>;

@@ -302,2 +316,4 @@ } : A;

type Tags<D extends string, P> = P extends Record<D, infer X> ? X : never;
type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never;
type ArrayToIntersection<A extends ReadonlyArray<any>> = UnionToIntersection<A[number]>;
//# sourceMappingURL=index.d.ts.map

@@ -6,3 +6,3 @@ "use strict";

});
exports.whenOr = exports.when = exports.value = exports.unsafe = exports.undefined = exports.type = exports.tag = exports.string = exports.safe = exports.record = exports.orElse = exports.option = exports.number = exports.null = exports.not = exports.nonEmptyString = exports.is = exports.exhaustive = exports.either = exports.discriminator = exports.date = exports.boolean = exports.bigint = exports.any = exports._undefined = exports._null = exports.SafeSchemaId = void 0;
exports.whenOr = exports.whenAnd = exports.when = exports.value = exports.unsafe = exports.undefined = exports.type = exports.tag = exports.string = exports.safe = exports.record = exports.orElse = exports.option = exports.number = exports.null = exports.not = exports.nonEmptyString = exports.is = exports.exhaustive = exports.either = exports.discriminator = exports.defined = exports.date = exports.boolean = exports.bigint = exports.any = exports._undefined = exports._null = exports.SafeSchemaId = void 0;
var E = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Either"));

@@ -123,2 +123,14 @@ var _Function = /*#__PURE__*/require("@effect/data/Function");

};
const makeAndPredicate = patterns => {
const predicates = patterns.map(makePredicate);
const len = predicates.length;
return u => {
for (let i = 0; i < len; i++) {
if (predicates[i](u) === false) {
return false;
}
}
return true;
};
};
/**

@@ -154,5 +166,12 @@ * @category constructors

* @category combinators
* @tsplus pipeable effect/match/Matcher whenAnd
* @since 1.0.0
*/
exports.whenOr = whenOr;
const whenAnd = (patterns, f) => self => self.add(new When(makeAndPredicate(patterns), f));
/**
* @category combinators
* @since 1.0.0
*/
exports.whenAnd = whenAnd;
const discriminator = field => (...pattern) => {

@@ -250,6 +269,13 @@ const f = pattern[pattern.length - 1];

* @category predicates
* @tsplus static effect/match/Matcher.Ops defined
* @since 1.0.0
*/
exports.any = any;
const defined = u => u !== undefined;
/**
* @category predicates
* @tsplus static effect/match/Matcher.Ops boolean
* @since 1.0.0
*/
exports.any = any;
exports.defined = defined;
const boolean = P.isBoolean;

@@ -256,0 +282,0 @@ /**

13

internal/ExtractMatch.d.ts

@@ -20,2 +20,5 @@ export type ExtractMatch<I, P> = [ExtractAndNarrow<I, P>] extends [infer EI] ? EI : never;

type IsPlainObject<T> = T extends BuiltInObjects ? false : T extends Record<string, any> ? true : false;
type Simplify<A> = {
[K in keyof A]: A[K];
} & {};
type ExtractAndNarrow<I, P> = unknown extends P ? I : IsUnion<I> extends true ? ListOf<I> extends infer L ? L extends Array<any> ? Exclude<{

@@ -25,11 +28,11 @@ [K in keyof L]: ExtractAndNarrow<L[K], P>;

readonly [K in keyof I]: K extends keyof P ? ExtractAndNarrow<I[K], P[K]> : I[K];
} extends infer R ? Fail extends R[keyof R] ? never : R : never : never : IsPlainObject<I> extends true ? string extends keyof I ? I extends P ? I : never : symbol extends keyof I ? I extends P ? I : never : {
[RK in keyof I]-?: RK extends keyof P ? ExtractAndNarrow<I[RK], P[RK]> : I[RK];
} extends infer R ? [keyof P] extends [keyof RemoveFails<R>] ? R : never : never : MaybeReplace<I, P> extends infer R ? [I] extends [R] ? I : R : never;
} extends infer R ? Fail extends R[keyof R] ? never : R : never : never : IsPlainObject<I> extends true ? string extends keyof I ? I extends P ? I : never : symbol extends keyof I ? I extends P ? I : never : Simplify<{
[RK in Extract<keyof I, keyof P>]-?: ExtractAndNarrow<I[RK], P[RK]>;
} & Omit<I, keyof P>> extends infer R ? [keyof P] extends [keyof RemoveFails<R>] ? R : never : never : MaybeReplace<I, P> extends infer R ? [I] extends [R] ? I : R : never;
type RemoveFails<A> = {
[K in keyof A]: A[K] extends Fail ? never : K;
[K in keyof A & {}]: A[K] extends Fail ? never : K;
}[keyof A] extends infer K ? [K] extends [keyof A] ? {
[RK in K]: A[RK];
} : never : never;
} : {} : {};
export {};
//# sourceMappingURL=ExtractMatch.d.ts.map
{
"name": "@effect/match",
"version": "0.20.4",
"version": "0.20.5",
"license": "MIT",

@@ -5,0 +5,0 @@ "repository": {

@@ -161,2 +161,19 @@ /**

const makeAndPredicate = (
patterns: ReadonlyArray<unknown>,
): Predicate<unknown> => {
const predicates = patterns.map(makePredicate)
const len = predicates.length
return (u: unknown) => {
for (let i = 0; i < len; i++) {
if (predicates[i](u) === false) {
return false
}
}
return true
}
}
/**

@@ -223,4 +240,25 @@ * @category constructors

* @category combinators
* @tsplus pipeable effect/match/Matcher whenAnd
* @since 1.0.0
*/
export const whenAnd =
<R, const P extends ReadonlyArray<PatternPrimitive<R> | PatternBase<R>>, B>(
patterns: P,
f: (_: WhenMatch<R, ArrayToIntersection<P>>) => B,
) =>
<I, F, A, Pr>(
self: Matcher<I, F, R, A, Pr>,
): Matcher<
I,
AddWithout<F, PForExclude<ArrayToIntersection<P>>>,
ApplyFilters<I, AddWithout<F, PForExclude<ArrayToIntersection<P>>>>,
A | B,
Pr
> =>
(self as any).add(new When(makeAndPredicate(patterns), f as any))
/**
* @category combinators
* @since 1.0.0
*/
export const discriminator =

@@ -349,3 +387,3 @@ <D extends string>(field: D) =>

*/
export const is: <Literals extends readonly LiteralValue[]>(
export const is: <Literals extends ReadonlyArray<LiteralValue>>(
...literals: Literals

@@ -387,2 +425,10 @@ ) => Refinement<unknown, Literals[number]> = (...literals): any => {

* @category predicates
* @tsplus static effect/match/Matcher.Ops defined
* @since 1.0.0
*/
export const defined = <A>(u: unknown): Refinement<A, A & {}> =>
(u !== undefined) as any
/**
* @category predicates
* @tsplus static effect/match/Matcher.Ops boolean

@@ -560,3 +606,5 @@ * @since 1.0.0

type SafeSchemaP<A> = A extends SafeSchema<infer S, infer _>
type SafeSchemaP<A> = A extends never
? never
: A extends SafeSchema<infer S, infer _>
? S

@@ -569,3 +617,5 @@ : A extends Function

type SafeSchemaR<A> = A extends SafeSchema<infer _, infer R>
type SafeSchemaR<A> = A extends never
? never
: A extends SafeSchema<infer _, infer R>
? R

@@ -578,3 +628,5 @@ : A extends Function

type ResolvePred<A> = A extends Refinement<any, infer P>
type ResolvePred<A> = A extends never
? never
: A extends Refinement<any, infer P>
? P

@@ -589,3 +641,5 @@ : A extends Predicate<infer P>

type PredToSchema<A> = A extends Refinement<any, infer P>
type PredToSchema<A> = A extends never
? never
: A extends Refinement<any, infer P>
? SafeSchema<P, P>

@@ -643,1 +697,11 @@ : A extends Predicate<infer P>

type Tags<D extends string, P> = P extends Record<D, infer X> ? X : never
type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (
x: infer R,
) => any
? R
: never
type ArrayToIntersection<A extends ReadonlyArray<any>> = UnionToIntersection<
A[number]
>

@@ -66,2 +66,4 @@ /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */

type Simplify<A> = { [K in keyof A]: A[K] } & {}
type ExtractAndNarrow<I, P> =

@@ -98,7 +100,7 @@ // unknown is a wildcard pattern

: never
: {
[RK in keyof I]-?: RK extends keyof P
? ExtractAndNarrow<I[RK], P[RK]>
: I[RK]
} extends infer R
: Simplify<
{
[RK in Extract<keyof I, keyof P>]-?: ExtractAndNarrow<I[RK], P[RK]>
} & Omit<I, keyof P>
> extends infer R
? [keyof P] extends [keyof RemoveFails<R>]

@@ -115,7 +117,7 @@ ? R

type RemoveFails<A> = {
[K in keyof A]: A[K] extends Fail ? never : K
[K in keyof A & {}]: A[K] extends Fail ? never : K
}[keyof A] extends infer K
? [K] extends [keyof A]
? { [RK in K]: A[RK] }
: never
: never
: {}
: {}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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