Skip to content
utils.ts 429 B
Newer Older
Grant's avatar
Grant committed
/**
 * Create enum from array of strings
 *
 * @param values
 * @returns
 */
export const createEnum = <T extends string>(values: T[]): { [k in T]: k } => {
Grant's avatar
Grant committed
  const ret: { [k in T]: k } = {} as any;
Grant's avatar
Grant committed

  for (const val of values) {
    ret[val] = val;
  }

  return ret;
};
Grant's avatar
Grant committed

export type ConditionalPromise<
  T,
  UsePromise extends boolean = false,
> = UsePromise extends true ? Promise<T> : UsePromise extends false ? T : never;