// app/composables/enum/createEnum.ts

export interface EnumItem<T = number | string> {
    key: string;
    value: T;
}

export type EnumResult<T> = {
    list: EnumItem<T>[];
} & Record<string, T>;

export function createEnum<T extends number | string>(
    values: EnumItem<T>[]
): EnumResult<T> {
    const obj = {} as EnumResult<T>;

    obj.list = values;

    values.forEach((v) => {
        obj[v.key] = v.value;
    });

    return obj;
}
