{"version":3,"sources":["../src/provider.ts","../src/utils/mapOperator.ts","../src/utils/handleFilter.ts","../src/utils/handleJoin.ts","../src/utils/handlePagination.ts","../src/utils/handleSort.ts","../src/utils/axios.ts","../src/utils/transformErrorMessages.ts","../src/utils/transformHttpError.ts","../src/index.ts"],"sourcesContent":["import { CondOperator, RequestQueryBuilder } from \"@nestjsx/crud-request\";\nimport type { DataProvider, HttpError } from \"@refinedev/core\";\nimport type { AxiosInstance } from \"axios\";\nimport { stringify } from \"query-string\";\nimport {\n  axiosInstance,\n  handleFilter,\n  handleJoin,\n  handlePagination,\n  handleSort,\n  transformHttpError,\n} from \"./utils\";\n\nexport const dataProvider = (\n  apiUrl: string,\n  httpClient: AxiosInstance = axiosInstance,\n): Required<DataProvider> => ({\n  getList: async ({ resource, pagination, filters, sorters, meta }) => {\n    const url = `${apiUrl}/${resource}`;\n\n    let query = RequestQueryBuilder.create();\n\n    query = handleFilter(query, filters);\n    query = handleJoin(query, meta?.join);\n    query = handlePagination(query, pagination);\n    query = handleSort(query, sorters);\n\n    const { data } = await httpClient.get(`${url}?${query.query()}`);\n\n    // without pagination\n    if (Array.isArray(data)) {\n      return {\n        data,\n        total: data.length,\n      };\n    }\n    // with pagination\n    return {\n      data: data.data,\n      total: data.total,\n    };\n  },\n\n  getMany: async ({ resource, ids, meta }) => {\n    const url = `${apiUrl}/${resource}`;\n\n    let query = RequestQueryBuilder.create().setFilter({\n      field: \"id\",\n      operator: CondOperator.IN,\n      value: ids,\n    });\n\n    query = handleJoin(query, meta?.join);\n\n    const { data } = await httpClient.get(`${url}?${query.query()}`);\n\n    return {\n      data,\n    };\n  },\n\n  create: async ({ resource, variables }) => {\n    const url = `${apiUrl}/${resource}`;\n\n    try {\n      const { data } = await httpClient.post(url, variables);\n\n      return {\n        data,\n      };\n    } catch (error) {\n      const httpError = transformHttpError(error);\n\n      throw httpError;\n    }\n  },\n\n  update: async ({ resource, id, variables }) => {\n    const url = `${apiUrl}/${resource}/${id}`;\n\n    try {\n      const { data } = await httpClient.patch(url, variables);\n\n      return {\n        data,\n      };\n    } catch (error) {\n      const httpError = transformHttpError(error);\n\n      throw httpError;\n    }\n  },\n\n  updateMany: async ({ resource, ids, variables }) => {\n    const errors: HttpError[] = [];\n\n    const response = await Promise.all(\n      ids.map(async (id) => {\n        try {\n          const { data } = await httpClient.patch(\n            `${apiUrl}/${resource}/${id}`,\n            variables,\n          );\n          return data;\n        } catch (error) {\n          const httpError = transformHttpError(error);\n\n          errors.push(httpError);\n        }\n      }),\n    );\n\n    if (errors.length > 0) {\n      throw errors;\n    }\n\n    return { data: response };\n  },\n\n  createMany: async ({ resource, variables }) => {\n    const url = `${apiUrl}/${resource}/bulk`;\n\n    try {\n      const { data } = await httpClient.post(url, { bulk: variables });\n\n      return {\n        data,\n      };\n    } catch (error) {\n      const httpError = transformHttpError(error);\n\n      throw httpError;\n    }\n  },\n\n  getOne: async ({ resource, id, meta }) => {\n    const url = `${apiUrl}/${resource}/${id}`;\n\n    let query = RequestQueryBuilder.create();\n\n    query = handleJoin(query, meta?.join);\n\n    const { data } = await httpClient.get(`${url}?${query.query()}`);\n\n    return {\n      data,\n    };\n  },\n\n  deleteOne: async ({ resource, id }) => {\n    const url = `${apiUrl}/${resource}/${id}`;\n\n    const { data } = await httpClient.delete(url);\n\n    return {\n      data,\n    };\n  },\n\n  deleteMany: async ({ resource, ids }) => {\n    const response = await Promise.all(\n      ids.map(async (id) => {\n        const { data } = await httpClient.delete(`${apiUrl}/${resource}/${id}`);\n        return data;\n      }),\n    );\n    return { data: response };\n  },\n\n  getApiUrl: () => {\n    return apiUrl;\n  },\n\n  custom: async ({\n    url,\n    method,\n    meta,\n    filters,\n    sorters,\n    payload,\n    query,\n    headers,\n  }) => {\n    let requestQueryBuilder = RequestQueryBuilder.create();\n\n    requestQueryBuilder = handleFilter(requestQueryBuilder, filters);\n\n    requestQueryBuilder = handleJoin(requestQueryBuilder, meta?.join);\n\n    requestQueryBuilder = handleSort(requestQueryBuilder, sorters);\n\n    let requestUrl = `${url}?${requestQueryBuilder.query()}`;\n\n    if (query) {\n      requestUrl = `${requestUrl}&${stringify(query)}`;\n    }\n\n    let axiosResponse;\n    switch (method) {\n      case \"put\":\n      case \"post\":\n      case \"patch\":\n        axiosResponse = await httpClient[method](url, payload, {\n          headers,\n        });\n        break;\n      case \"delete\":\n        axiosResponse = await httpClient.delete(url, {\n          data: payload,\n          headers: headers,\n        });\n        break;\n      default:\n        axiosResponse = await httpClient.get(requestUrl, { headers });\n        break;\n    }\n\n    const { data } = axiosResponse;\n\n    return Promise.resolve({ data });\n  },\n});\n","import { type ComparisonOperator, CondOperator } from \"@nestjsx/crud-request\";\nimport type { CrudOperators } from \"@refinedev/core\";\n\nexport const mapOperator = (operator: CrudOperators): ComparisonOperator => {\n  switch (operator) {\n    case \"and\":\n      return \"$and\";\n    case \"or\":\n      return \"$or\";\n    case \"eq\":\n      return CondOperator.EQUALS;\n    case \"ne\":\n      return CondOperator.NOT_EQUALS;\n    case \"lt\":\n      return CondOperator.LOWER_THAN;\n    case \"gt\":\n      return CondOperator.GREATER_THAN;\n    case \"lte\":\n      return CondOperator.LOWER_THAN_EQUALS;\n    case \"gte\":\n      return CondOperator.GREATER_THAN_EQUALS;\n    case \"in\":\n      return CondOperator.IN;\n    case \"nin\":\n      return CondOperator.NOT_IN;\n    case \"contains\":\n      return CondOperator.CONTAINS_LOW;\n    case \"ncontains\":\n      return CondOperator.EXCLUDES_LOW;\n    case \"containss\":\n      return CondOperator.CONTAINS;\n    case \"ncontainss\":\n      return CondOperator.EXCLUDES;\n    case \"null\":\n      return CondOperator.IS_NULL;\n    case \"nnull\":\n      return CondOperator.NOT_NULL;\n    case \"startswith\":\n      return CondOperator.STARTS_LOW;\n    case \"startswiths\":\n      return CondOperator.STARTS;\n    case \"endswith\":\n      return CondOperator.ENDS_LOW;\n    case \"endswiths\":\n      return CondOperator.ENDS;\n    case \"between\":\n      return CondOperator.BETWEEN;\n  }\n\n  return CondOperator.EQUALS;\n};\n","import type { CrudFilters, CrudFilter } from \"@refinedev/core\";\nimport type { RequestQueryBuilder, SCondition } from \"@nestjsx/crud-request\";\nimport { mapOperator } from \"./mapOperator\";\n\nexport const generateSearchFilter = (filters: CrudFilters): SCondition => {\n  return createSearchQuery({\n    operator: \"and\",\n    value: filters,\n  });\n};\n\nexport const createSearchQuery = (filter: CrudFilter): SCondition => {\n  if (\n    filter.operator !== \"and\" &&\n    filter.operator !== \"or\" &&\n    \"field\" in filter\n  ) {\n    // query\n    return {\n      [filter.field]: {\n        [mapOperator(filter.operator)]: filter.value,\n      },\n    };\n  }\n\n  const { operator } = filter;\n\n  return {\n    [mapOperator(operator)]: filter.value.map((filter) =>\n      createSearchQuery(filter),\n    ),\n  };\n};\n\nexport const handleFilter = (\n  query: RequestQueryBuilder,\n  filters?: CrudFilters,\n) => {\n  if (Array.isArray(filters) && filters.length > 0) {\n    query.search(generateSearchFilter(filters));\n  }\n  return query;\n};\n","import type {\n  RequestQueryBuilder,\n  QueryJoin,\n  QueryJoinArr,\n} from \"@nestjsx/crud-request\";\n\nexport const handleJoin = (\n  query: RequestQueryBuilder,\n  join?: QueryJoin | QueryJoinArr | (QueryJoin | QueryJoinArr)[],\n) => {\n  if (join) {\n    query.setJoin(join);\n  }\n  return query;\n};\n","import type { RequestQueryBuilder } from \"@nestjsx/crud-request\";\nimport type { Pagination } from \"@refinedev/core\";\n\nexport const handlePagination = (\n  query: RequestQueryBuilder,\n  pagination?: Pagination,\n) => {\n  const { currentPage = 1, pageSize = 10, mode = \"server\" } = pagination ?? {};\n\n  if (mode === \"server\") {\n    query\n      .setLimit(pageSize)\n      .setPage(currentPage)\n      .setOffset((currentPage - 1) * pageSize);\n  }\n\n  return query;\n};\n","import type {\n  RequestQueryBuilder,\n  QuerySort,\n  QuerySortArr,\n  QuerySortOperator,\n} from \"@nestjsx/crud-request\";\nimport type { CrudSorting } from \"@refinedev/core\";\n\nexport type SortBy = QuerySort | QuerySortArr | Array<QuerySort | QuerySortArr>;\n\nexport const generateSort = (sort?: CrudSorting): SortBy | undefined => {\n  if (sort && sort.length > 0) {\n    const multipleSort: SortBy = [];\n    sort.map(({ field, order }) => {\n      if (field && order) {\n        multipleSort.push({\n          field: field,\n          order: order.toUpperCase() as QuerySortOperator,\n        });\n      }\n    });\n    return multipleSort;\n  }\n\n  return;\n};\n\nexport const handleSort = (\n  query: RequestQueryBuilder,\n  sorters?: CrudSorting,\n) => {\n  const sortBy = generateSort(sorters);\n  if (sortBy) {\n    query.sortBy(sortBy);\n  }\n\n  return query;\n};\n","import type { HttpError } from \"@refinedev/core\";\nimport axios from \"axios\";\n\nexport const axiosInstance = axios.create();\n\naxiosInstance.interceptors.response.use(\n  (response) => {\n    return response;\n  },\n  (error) => {\n    const customError: HttpError = {\n      ...error,\n      message: error.response?.data?.message,\n      statusCode: error.response?.status,\n    };\n\n    return Promise.reject(customError);\n  },\n);\n","type TransformedErrors = {\n  [key: string]: string[];\n};\n\nexport const transformErrorMessages = (\n  errorMessages: string[],\n): TransformedErrors => {\n  const transformedErrors: TransformedErrors = {};\n\n  for (const errorMessage of errorMessages) {\n    const separatorIndex = errorMessage.indexOf(\" \");\n    const field = errorMessage.substring(0, separatorIndex);\n\n    if (transformedErrors[field]) {\n      transformedErrors[field].push(errorMessage);\n    } else {\n      transformedErrors[field] = [errorMessage];\n    }\n  }\n\n  return transformedErrors;\n};\n","import type { HttpError } from \"@refinedev/core\";\n\nimport { transformErrorMessages } from \"./transformErrorMessages\";\n\nexport const transformHttpError = (error: any): HttpError => {\n  const message = error.response.data.error;\n  const statusCode = error.response.data.statusCode;\n  const errorMessages = error.response.data.message;\n\n  const errors = transformErrorMessages(errorMessages);\n\n  const httpError: HttpError = {\n    statusCode,\n    message,\n    errors,\n  };\n\n  return httpError;\n};\n","import { dataProvider } from \"./provider.js\";\n\nexport default dataProvider;\n\nexport * from \"./utils/index.js\";\n"],"mappings":"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","names":["CondOperator","filter","CondOperator"]}