All files / src/utils/search handleOptions.ts

0% Statements 0/17
0% Branches 0/6
0% Functions 0/2
0% Lines 0/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41                                                                                 
import { SearchOptionTypes, SearchOptionTypesType } from "./optionTypes.ts";
 
type SearchOptionType = {
  id: string;
  label: string;
  option: any;
};
 
function handleOptions(column: any, option: any): SearchOptionType[] {
  const type: SearchOptionTypesType = column.type;
  const optionValue = option[type.toLowerCase()];
  const values: string[] = [];
 
  switch (type) {
    case SearchOptionTypes.ID:
      values.push(optionValue.alias);
      break;
    case SearchOptionTypes.STRING:
      values.push(optionValue);
      break;
    case SearchOptionTypes.STRING_ARRAY:
      values.push(...optionValue);
      break;
    default:
      values.push(optionValue.toString());
  }
 
  if (values.length > 0) {
    return values.map((val) => ({
      label: `${column.name}: ${val}`,
      id: `${column.name}: ${val}`,
      option,
      column,
    }));
  } else {
    return [];
  }
}
 
export default handleOptions;