before-after-hook
Advanced tools
Comparing version 3.0.1 to 3.0.2
@@ -25,18 +25,8 @@ type HookMethod<Options, Result> = ( | ||
type TypeStoreKeyLong = "Options" | "Result" | "Error"; | ||
type TypeStoreKeyShort = "O" | "R" | "E"; | ||
type TypeStore = | ||
| ({ [key in TypeStoreKeyLong]?: unknown } & | ||
{ [key in TypeStoreKeyShort]?: never }) | ||
| ({ [key in TypeStoreKeyLong]?: never } & | ||
{ [key in TypeStoreKeyShort]?: unknown }); | ||
type TypeStoreKey = "Options" | "Result" | "Error"; | ||
type TypeStore = { [key in TypeStoreKey]?: any }; | ||
type GetType< | ||
Store extends TypeStore, | ||
LongKey extends TypeStoreKeyLong, | ||
ShortKey extends TypeStoreKeyShort | ||
> = LongKey extends keyof Store | ||
? Store[LongKey] | ||
: ShortKey extends keyof Store | ||
? Store[ShortKey] | ||
: unknown; | ||
TStore extends TypeStore, | ||
TKey extends TypeStoreKey | ||
> = TKey extends keyof TStore ? TStore[TKey] : any; | ||
@@ -46,3 +36,3 @@ export interface HookCollection< | ||
string, | ||
{ Options: unknown; Result: unknown; Error: unknown } | ||
{ Options: any; Result: any; Error: any } | ||
>, | ||
@@ -57,7 +47,7 @@ HookName extends keyof HooksType = keyof HooksType | ||
hookMethod: HookMethod< | ||
GetType<HooksType[Name], "Options", "O">, | ||
GetType<HooksType[Name], "Result", "R"> | ||
GetType<HooksType[Name], "Options">, | ||
GetType<HooksType[Name], "Result"> | ||
>, | ||
options?: GetType<HooksType[Name], "Options", "O"> | ||
): Promise<GetType<HooksType[Name], "Result", "R">>; | ||
options?: GetType<HooksType[Name], "Options"> | ||
): Promise<GetType<HooksType[Name], "Result">>; | ||
/** | ||
@@ -68,3 +58,3 @@ * Add `before` hook for given `name` | ||
name: Name, | ||
beforeHook: BeforeHook<GetType<HooksType[Name], "Options", "O">> | ||
beforeHook: BeforeHook<GetType<HooksType[Name], "Options">> | ||
): void; | ||
@@ -77,4 +67,4 @@ /** | ||
errorHook: ErrorHook< | ||
GetType<HooksType[Name], "Options", "O">, | ||
GetType<HooksType[Name], "Error", "E"> | ||
GetType<HooksType[Name], "Options">, | ||
GetType<HooksType[Name], "Error"> | ||
> | ||
@@ -88,4 +78,4 @@ ): void; | ||
afterHook: AfterHook< | ||
GetType<HooksType[Name], "Options", "O">, | ||
GetType<HooksType[Name], "Result", "R"> | ||
GetType<HooksType[Name], "Options">, | ||
GetType<HooksType[Name], "Result"> | ||
> | ||
@@ -99,4 +89,4 @@ ): void; | ||
wrapHook: WrapHook< | ||
GetType<HooksType[Name], "Options", "O">, | ||
GetType<HooksType[Name], "Result", "R"> | ||
GetType<HooksType[Name], "Options">, | ||
GetType<HooksType[Name], "Result"> | ||
> | ||
@@ -110,5 +100,5 @@ ): void; | ||
hook: AnyHook< | ||
GetType<HooksType[Name], "Options", "O">, | ||
GetType<HooksType[Name], "Result", "R">, | ||
GetType<HooksType[Name], "Error", "E"> | ||
GetType<HooksType[Name], "Options">, | ||
GetType<HooksType[Name], "Result">, | ||
GetType<HooksType[Name], "Error"> | ||
> | ||
@@ -160,13 +150,22 @@ ): void; | ||
type Collection = new < | ||
HooksType extends Record<string, TypeStore> = Record< | ||
string, | ||
{ Options: any; Result: any; Error: any } | ||
> | ||
HooksType extends Record<string, TypeStore> = Record<string, TypeStore> | ||
>() => HookCollection<HooksType>; | ||
type Singular = new < | ||
Options = any, | ||
Result = any, | ||
Error = any | ||
Options = unknown, | ||
Result = unknown, | ||
Error = unknown | ||
>() => HookSingular<Options, Result, Error>; | ||
interface Hook { | ||
/** | ||
* Creates a collection of hooks | ||
*/ | ||
Collection: Collection; | ||
/** | ||
* Creates a nameless hook that supports strict typings | ||
*/ | ||
Singular: Singular; | ||
} | ||
declare const Hook: { | ||
@@ -173,0 +172,0 @@ /** |
{ | ||
"name": "before-after-hook", | ||
"type": "module", | ||
"version": "3.0.1", | ||
"version": "3.0.2", | ||
"description": "asynchronous before/error/after hooks for internal functionality", | ||
@@ -6,0 +6,0 @@ "exports": "./index.js", |
@@ -19,3 +19,3 @@ # before-after-hook | ||
<script type="module"> | ||
import Hoom from "https://cdn.skypack.dev/before-after-hook"; | ||
import Hook from "https://cdn.skypack.dev/before-after-hook"; | ||
</script> | ||
@@ -22,0 +22,0 @@ ``` |
35522
278