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.19.0 to 0.19.1

9

index.d.ts

@@ -264,9 +264,6 @@ /**

} : A;
type PatternBase<A> = A extends Array<infer _T> ? any : A extends Record<string, any> ? Partial<{
[K in keyof A]: PatternPrimitive<A[K]> | InnerPattern<A[K]>;
}> : A;
type PatternBase<A> = A extends ReadonlyArray<infer _T> ? any : A extends Record<string, any> ? Partial<{
[K in keyof A]: PatternPrimitive<A[K]> | PatternBase<A[K]>;
}> : never;
type PatternPrimitive<A> = PredicateA<A> | A | SafeSchema<any>;
type InnerPattern<A> = A extends Array<infer _T> ? any : A extends Record<string, any> ? Partial<{
[K in keyof A]: InnerPattern<A[K]> | PatternPrimitive<A[K]>;
}> : never;
type RemoveInvalidPatterns<P> = ValidPattern<P> extends true ? P : never;

@@ -273,0 +270,0 @@ type ValidPattern<P, Checked = never> = P extends SafeSchema<any> ? false : P extends Array<infer R> ? [R] extends [Checked] ? true : ValidPattern<R, Checked | R> : P extends Record<string, any> ? [

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

export type ExtractMatch<I, P> = [ReplaceUnions<I, P>] extends [infer EI] ? Extract<EI, P> : never;
export type ExtractMatch<I, P> = [ExtractAndNarrow<I, P>] extends [infer EI] ? EI : never;
type IntersectOf<U extends unknown> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;

@@ -16,4 +16,2 @@ type Last<U extends any> = IntersectOf<U extends unknown ? (x: U) => void : never> extends (x: infer P) => void ? P : never;

type MaybeReplace<I, P> = [P] extends [I] ? P : [I] extends [P] ? Replace<I, P> : Fail;
type FlattenRecordFails<R, D = Fail> = Extract<R[Extract<keyof R, string>], Fail> extends never ? R : D;
type FlattenUnionFails<U> = [U] extends [Fail] ? Fail : Exclude<U, Fail>;
type BuiltInObjects = Function | Date | RegExp | Generator | {

@@ -23,8 +21,13 @@ readonly [Symbol.toStringTag]: string;

type IsPlainObject<T> = T extends BuiltInObjects ? false : T extends Record<string, any> ? true : false;
type ReplaceUnions<I, P> = unknown extends P ? I : IsUnion<I> extends true ? ListOf<I> extends infer L ? L extends Array<any> ? FlattenUnionFails<{
[K in keyof L]: L[K] extends Array<I> ? L[K] : ReplaceUnions<L[K], P>;
}[number]> : never : never : IsPlainObject<I> extends true ? FlattenRecordFails<{
[RK in keyof I]-?: RK extends keyof P ? ReplaceUnions<I[RK], P[RK]> : I[RK];
}> : MaybeReplace<I, P>;
type ExtractAndNarrow<I, P> = unknown extends P ? I : IsUnion<I> extends true ? ListOf<I> extends infer L ? L extends Array<any> ? Exclude<{
[K in keyof L]: ExtractAndNarrow<L[K], P>;
}[number], Fail> : never : never : I extends ReadonlyArray<any> ? P extends Readonly<I> ? P : 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>;
type RemoveFails<A> = {
[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.19.0",
"version": "0.19.1",
"license": "MIT",

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

@@ -506,20 +506,12 @@ /**

type PatternBase<A> = A extends Array<infer _T>
type PatternBase<A> = A extends ReadonlyArray<infer _T>
? any // TODO: improve array inference
: A extends Record<string, any>
? Partial<{
[K in keyof A]: PatternPrimitive<A[K]> | InnerPattern<A[K]>
[K in keyof A]: PatternPrimitive<A[K]> | PatternBase<A[K]>
}>
: A
: never
type PatternPrimitive<A> = PredicateA<A> | A | SafeSchema<any>
type InnerPattern<A> = A extends Array<infer _T>
? any // TODO: improve array inference
: A extends Record<string, any>
? Partial<{
[K in keyof A]: InnerPattern<A[K]> | PatternPrimitive<A[K]>
}>
: never
type RemoveInvalidPatterns<P> = ValidPattern<P> extends true ? P : never

@@ -526,0 +518,0 @@

/* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
export type ExtractMatch<I, P> = [ReplaceUnions<I, P>] extends [infer EI]
? Extract<EI, P>
export type ExtractMatch<I, P> = [ExtractAndNarrow<I, P>] extends [infer EI]
? EI
: never

@@ -53,10 +53,2 @@

type FlattenRecordFails<R, D = Fail> = Extract<
R[Extract<keyof R, string>],
Fail
> extends never
? R
: D
type FlattenUnionFails<U> = [U] extends [Fail] ? Fail : Exclude<U, Fail>
type BuiltInObjects =

@@ -75,3 +67,3 @@ | Function

type ReplaceUnions<I, P> =
type ExtractAndNarrow<I, P> =
// unknown is a wildcard pattern

@@ -83,17 +75,35 @@ unknown extends P

? L extends Array<any>
? FlattenUnionFails<
{
[K in keyof L]: L[K] extends Array<I>
? L[K]
: ReplaceUnions<L[K], P>
}[number]
>
? Exclude<{ [K in keyof L]: ExtractAndNarrow<L[K], P> }[number], Fail>
: never
: never
: I extends ReadonlyArray<any>
? P extends Readonly<I>
? P
: never
: IsPlainObject<I> extends true
? FlattenRecordFails<{
[RK in keyof I]-?: RK extends keyof P
? ReplaceUnions<I[RK], P[RK]>
: I[RK]
}>
? 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>
type RemoveFails<A> = {
[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

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