From db97b1a9c42fe945ca37256f5ee18d52c6aa32b4 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Thu, 10 Aug 2023 18:18:46 +0530 Subject: feat: adds parser for simple expressions --- src/utils/adt.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/utils/adt.ts') diff --git a/src/utils/adt.ts b/src/utils/adt.ts index c19398b..e9a6c51 100644 --- a/src/utils/adt.ts +++ b/src/utils/adt.ts @@ -1,11 +1,9 @@ type TagValue = T extends Tag ? V : never export const match = - >(pattern: { + >(tag: T, pattern: { [key in T['tag'] | '_']?: (v: TagValue) => R - }) => - (tag: T): R => - ((pattern as any)[tag.tag] || (pattern._ as any))(tag.value) + }): R => ((pattern as any)[tag.tag] || (pattern._ as any))(tag.value) type Tag = { tag: N; value: V } export type Enum = { [N in keyof T]: Tag }[keyof T] -- cgit v1.3.1