UNPKG

@mozaic-fi/intent-swapper-sdk-common

Version:
10 lines (9 loc) 872 B
import { Token, TokenObject, TokenTypes } from './token'; import { TokenAmount, TokenAmountObject, TokenAmountTypes, TokenAmounts, TokenAmountsTypes } from './token-amount'; export type Classifying<T> = T extends TokenAmountsTypes ? TokenAmounts : T extends TokenAmountTypes ? TokenAmount : T extends TokenTypes ? Token : T extends Array<infer U> ? U extends undefined ? any[] : Classifying<U>[] : T extends object ? { [K in keyof T]: Classifying<T[K]>; } : T; export type Declasifying<T> = T extends TokenAmounts ? TokenAmountObject[] : T extends TokenAmount ? TokenAmountObject : T extends Token ? TokenObject : T extends Array<infer U> ? U extends undefined ? any[] : Declasifying<U>[] : T extends object ? { [K in keyof T]: Declasifying<T[K]>; } : T; export declare function classifying<T extends Record<string, any> | any[] = any>(fields: T): Classifying<T>;