import { filterFormatter } from './filterFormatter' import type { FilterType } from './filterFormatter' import { includeFormatter } from './includeFormatter' import type { IncludeType } from './includeFormatter' type EndPointMakerType = { includes?: IncludeType filter?: FilterType pagination?: { per: string page: string } } export const endpointMaker = ({ includes, filter, pagination = { page: '1', per: '25' }, }: EndPointMakerType) => { const paginate = `page=${pagination.page}&per=${pagination.per}` if (includes && !filter) { return `?${includeFormatter(includes)}&${paginate}` } else if (filter && !includes) { return `?${filterFormatter(filter)}&${paginate}` } else if (filter && includes) { return `?${includeFormatter(includes)}&${filterFormatter( filter, )}&${paginate}` } else if (!filter && !includes && pagination) { return `?${paginate}` } return '' }