# ivyforms/0.1.2/frontend/src/composables/useApiClient.js

The Innovative Form Builder – IvyForms, version 0.1.2. 33 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/0.1.2/code/frontend/src/composables/useApiClient.js
- Raw: https://pluginprobe.com/plugins/ivyforms/0.1.2/raw/frontend/src/composables/useApiClient.js
- Modified: 2025-06-12T10:29:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/0.1.2/code/frontend/src/composables/useApiClient.js#L10-L20`.

```javascript
import axios from 'axios'

export const useApiClient = () => {
  const apiClient = axios.create({
    baseURL: window.wpIvyFormsPluginAjaxURL,
  })

  apiClient.interceptors.request.use(
    (config) => {
      config.params = { ...config.params, wpAmeliaNonce: window.wpAmeliaNonce }

      return config
    },
    (error) => {
      return Promise.reject(error)
    },
  )

  const apiRequest = async (url, options = {}) => {
    try {
      const response = await apiClient.request({ url, ...options })

      return { data: response.data, error: null, status: response.status }
    } catch (error) {
      return { data: null, error, status: error.response.status }
    }
  }

  return {
    apiRequest,
  }
}

```
