import { DataType } from "./DataType.js";

/**
 * @template T
 * @param {T} value
 * @return {DataType}
 */
export function computeDataTypeFromValue(value) {
    const t = typeof value;

    switch (t) {
        case "number":
            return DataType.Number;
        case "string":
            return DataType.String;
        case "boolean":
            return DataType.Boolean;
        default:
            if (Array.isArray(value)) {
                return DataType.Array;
            }

            throw new Error(`Unsupported value type for value '${value}'`);
    }
}
