{"version":3,"file":"vue.mjs","sources":["../../../src/adapters/vue/useVormia.js"],"sourcesContent":["import { ref } from 'vue';\nimport { getGlobalVormiaClient } from '../../client/createVormiaClient';\nimport { VormiaError } from '../../client/utils/VormiaError';\n\nexport function useVormiaQuery(options) {\n  const client = getGlobalVormiaClient();\n  const data = ref(null);\n  const error = ref(null);\n  const isLoading = ref(false);\n  const isError = ref(false);\n  const isSuccess = ref(false);\n\n  const fetchData = async (opts = {}) => {\n    const mergedOptions = { ...options, ...opts };\n    const { \n      endpoint, \n      method = 'GET', \n      params, \n      data: bodyData, \n      headers, \n      transform, \n      onSuccess, \n      onError \n    } = mergedOptions;\n\n    isLoading.value = true;\n    isError.value = false;\n    isSuccess.value = false;\n\n    try {\n      const config = {\n        method,\n        params: method === 'GET' ? params : undefined,\n        headers\n      };\n\n      const response = await client.request({\n        url: endpoint,\n        method,\n        data: method !== 'GET' ? (bodyData || params) : undefined,\n        ...config,\n      });\n      \n      let result = response.data;\n\n      if (transform && result) {\n        result = transform(result);\n        response.data = result;\n      }\n\n      data.value = result;\n      isSuccess.value = true;\n      \n      if (onSuccess) {\n        onSuccess(response);\n      }\n\n      return response;\n    } catch (err) {\n      const errorMessage = err instanceof Error ? err.message : 'An unknown error occurred';\n      const status = err?.response?.status;\n      const errorData = err?.response?.data;\n      \n      const errorObj = err instanceof VormiaError \n        ? err \n        : new VormiaError(errorMessage, status, errorData);\n        \n      error.value = errorObj;\n      isError.value = true;\n      \n      if (onError) {\n        onError(errorObj);\n      }\n      \n      throw errorObj;\n    } finally {\n      isLoading.value = false;\n    }\n  };\n\n  if (options.immediate !== false) {\n    fetchData();\n  }\n\n  return {\n    data,\n    error,\n    isLoading,\n    isError,\n    isSuccess,\n    fetch: fetchData,\n    refetch: fetchData\n  };\n}\n\nexport function useVormiaMutation(options = {}) {\n  const client = getGlobalVormiaClient();\n  const data = ref(null);\n  const error = ref(null);\n  const isLoading = ref(false);\n  const isError = ref(false);\n  const isSuccess = ref(false);\n\n  const mutate = async (endpoint, values, method = 'POST', config = {}) => {\n    isLoading.value = true;\n    isError.value = false;\n    isSuccess.value = false;\n\n    try {\n      const response = await client.request({\n        url: endpoint,\n        method,\n        data: values,\n        ...config\n      });\n\n      data.value = response;\n      isSuccess.value = true;\n      \n      if (options.onSuccess) {\n        options.onSuccess(response);\n      }\n\n      return response;\n    } catch (err) {\n      const errorMessage = err instanceof Error ? err.message : 'An unknown error occurred';\n      const status = err?.response?.status;\n      const errorData = err?.response?.data;\n      \n      const errorObj = err instanceof VormiaError \n        ? err \n        : new VormiaError(errorMessage, status, errorData);\n        \n      error.value = errorObj;\n      isError.value = true;\n      \n      if (options.onError) {\n        options.onError(errorObj);\n      }\n      \n      throw errorObj;\n    } finally {\n      isLoading.value = false;\n    }\n  };\n\n  return {\n    data,\n    error,\n    isLoading,\n    isError,\n    isSuccess,\n    mutate\n  };\n}\n"],"names":[],"mappings":"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"}