diff options
| author | Akshay Nair <phenax5@gmail.com> | 2023-08-20 11:16:52 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2023-08-20 11:16:52 +0530 |
| commit | 2b94b07fdc8f1a82f507b99000add9b7dca2c3d8 (patch) | |
| tree | c96e3c0992cc24145c9b42cbaf8ea8f607c6b73c /src/utils | |
| parent | 3ff7d709998fe33f82e6da50d7b3327b076a1039 (diff) | |
| download | css-everything-2b94b07fdc8f1a82f507b99000add9b7dca2c3d8.tar.gz css-everything-2b94b07fdc8f1a82f507b99000add9b7dca2c3d8.zip | |
refactor: adds evalvalue type instead of string
Diffstat (limited to 'src/utils')
| -rw-r--r-- | src/utils/adt.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/utils/adt.ts b/src/utils/adt.ts index 45d9e50..3ae387c 100644 --- a/src/utils/adt.ts +++ b/src/utils/adt.ts @@ -7,6 +7,28 @@ export const match = <R, T extends Tag<string, any>>( }, ): R => ((pattern as any)[tag.tag] || (pattern._ as any))(tag.value) +// type TagValues< +// T extends Tag<any, string>, +// Keys extends Array<string>, +// Values extends Array<any> = [], +// > = Keys extends [] +// ? Values +// : Keys extends [ +// infer key extends string, +// ...infer restOfKeys extends string[], +// ] +// ? TagValues<T, restOfKeys, [...Values, TagValue<T, key>]> +// : never +// +// export const ifLet = <T extends Tag<string, any>, Keys extends Array<T['tag']>>( +// tag: T, +// kinds: Keys, +// cb: (...values: TagValues<T, Keys>) => void, +// ): void => { +// const values = kinds.map(k => (tag.tag === k ? tag.value : undefined)) +// ;(cb as any)(...values) +// } + export const matchString = <R, T extends string = string>( key: T, pattern: { |
