All files / src/shared/utils table-utils.ts

92.3% Statements 24/26
81.25% Branches 13/16
100% Functions 1/1
92.3% Lines 24/26

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      1x 32x 32x   32x 32x 32x 32x 32x   32x 3x 4x 4x 4x 3x 4x 1x 1x 4x     3x 3x   32x 32x   32x 32x  
import { IParams } from '@/core/services/http/http.models';
import { ILazyState } from '../types/lazyParams';
 
export function setTableParams(event: ILazyState): IParams {
  const tableParam: IParams | any = {};
  const { page, pages, pageSize, sortOrder, sortBy: sortField, filters } = event;
 
  tableParam.page = page ?? null;
  tableParam.pages = pages ?? null;
  tableParam.pageSize = pageSize ?? null;
  tableParam.sortBy = sortField ?? '';
  tableParam.sortOrder = sortOrder;
 
  if (filters && Object.keys(filters)?.length) {
    Object.entries(filters)?.forEach(([key, data]) => {
      const { value } = data || {};
      if (value !== null) {
        if (typeof value !== 'string' || value.length >= 1) {
          tableParam[key] = value;
        } else {
          delete tableParam[key];
        }
      } else if (tableParam[key]) {
        delete tableParam[key];
      }
    });
  }
 
  if (!tableParam?.sortBy || tableParam.sortBy === '') delete tableParam.sortBy;
  if (!tableParam?.sortOrder) delete tableParam.sortOrder;
 
  return tableParam;
}