From 9c0c7f9047ba1a9f106916f6ce22837b3e78bc78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A6=8A=E5=8E=9F=E6=98=8C=E5=BD=A6?= Date: Sun, 21 Apr 2024 18:09:26 +0900 Subject: [PATCH] fix(type): fix ValidateAllEventsEnumAreImplemented --- .../validate-all-events-implemented.type.ts | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/private/validate-all-events-implemented.type.ts b/src/private/validate-all-events-implemented.type.ts index 847c0813..16df4977 100644 --- a/src/private/validate-all-events-implemented.type.ts +++ b/src/private/validate-all-events-implemented.type.ts @@ -1,17 +1,21 @@ -import type { PluginListenerHandle } from '@capacitor/core'; - - -type Contra = (x: T) => void -type UnwrapContra = [T] extends [Contra] ? S : never -type UnionToIntersection = UnwrapContra : never> - -type Overload = - (eventName: T, listenerFunc: (...args: any[]) => any) => PluginListenerHandle -type OverloadUnionForEnum = T extends any ? Overload : never - -type OverloadUnion = OverloadUnionForEnum -// Overload | Overload | Overload - -type Overloads = UnionToIntersection> - -export type ValidateAllEventsEnumAreImplemented }> = TDefinitionInterface; +import type { PluginListenerHandle } from '@capacitor/core'; + +type Contra = (x: T) => void; +type UnwrapContra = [T] extends [Contra] ? S : never; +type UnionToIntersection = UnwrapContra : never>; + +type Overload = ( + eventName: T, + listenerFunc: (...args: any[]) => any, +) => Promise; +type OverloadUnionForEnum = T extends any ? Overload : never; + +type OverloadUnion = OverloadUnionForEnum; +// Overload | Overload | Overload + +type Overloads = UnionToIntersection>; + +export type ValidateAllEventsEnumAreImplemented< + TEventsEnum, + TDefinitionInterface extends { addListener: Overloads }, +> = TDefinitionInterface;