Skip to content

Commit 4595eed

Browse files
authored
[0.3.x] Expose the client / axios instance (#25)
* expose the client / axios instance * Fix tests
1 parent 43f3bc5 commit 4595eed

File tree

9 files changed

+20
-3
lines changed

9 files changed

+20
-3
lines changed

packages/alpine/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import get from 'lodash.get'
55
import set from 'lodash.set'
66
import { Form } from './types'
77

8+
export { client }
9+
810
export default function (Alpine: TAlpine) {
911
Alpine.magic('form', (el) => <Data extends Record<string, unknown>>(method: RequestMethod|(() => RequestMethod), url: string|(() => string), inputs: Data, config: ValidationConfig = {}): Data&Form<Data> => {
1012
syncWithDom(el, resolveMethod(method), resolveUrl(url))

packages/core/src/client.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Config, Client, RequestFingerprintResolver, StatusHandler, SuccessResol
55
/**
66
* The configured axios client.
77
*/
8-
let axiosClient: AxiosInstance = Axios
8+
let axiosClient: AxiosInstance = Axios.create()
99

1010
/**
1111
* The request fingerprint resolver.
@@ -36,6 +36,9 @@ export const client: Client = {
3636

3737
return this
3838
},
39+
axios() {
40+
return axiosClient
41+
},
3942
fingerprintRequestsUsing(callback) {
4043
requestFingerprintResolver = callback === null
4144
? () => null

packages/core/src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export interface Client {
4444
use(axios: AxiosInstance): Client,
4545
fingerprintRequestsUsing(callback: RequestFingerprintResolver|null): Client,
4646
determineSuccessUsing(callback: SuccessResolver): Client,
47+
axios(): AxiosInstance,
4748
}
4849

4950
export interface Validator {

packages/core/tests/client.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { createValidator } from '../src/validator'
55

66
beforeEach(() => {
77
vi.mock('axios')
8+
client.use(axios)
89
vi.useFakeTimers()
910
})
1011

packages/core/tests/validator.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import { it, vi, expect, beforeEach, afterEach } from 'vitest'
22
import axios from 'axios'
3+
import { client } from '../src/client'
34
import { createValidator } from '../src/validator'
45

56
beforeEach(() => {
67
vi.mock('axios')
78
vi.useFakeTimers()
9+
client.use(axios)
810
})
911

1012
afterEach(() => {

packages/react-inertia/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { Config, NamedInputEvent, RequestMethod, SimpleValidationErrors, toSimpleValidationErrors, ValidationConfig, ValidationErrors, resolveUrl, resolveMethod } from 'laravel-precognition'
2-
import { useForm as usePrecognitiveForm } from 'laravel-precognition-react'
2+
import { useForm as usePrecognitiveForm, client } from 'laravel-precognition-react'
33
import { useForm as useInertiaForm } from '@inertiajs/react'
44
import { useRef } from 'react'
55

6+
export { client }
7+
68
export const useForm = <Data extends Record<string, unknown>>(method: RequestMethod|(() => RequestMethod), url: string|(() => string), inputs: Data, config: ValidationConfig = {}): any => {
79
const booted = useRef<boolean>(false)
810

packages/react/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import set from 'lodash.set'
55
import { useRef, useState } from 'react'
66
import { Form } from './types'
77

8+
export { client }
9+
810
export const useForm = <Data extends Record<string, unknown>>(method: RequestMethod|(() => RequestMethod), url: string|(() => string), input: Data, config: ValidationConfig = {}): Form<Data> => {
911
/**
1012
* The original data.

packages/vue-inertia/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { Config, NamedInputEvent, RequestMethod, SimpleValidationErrors, toSimpleValidationErrors, ValidationConfig, ValidationErrors, resolveUrl, resolveMethod } from 'laravel-precognition'
2-
import { useForm as usePrecognitiveForm } from 'laravel-precognition-vue'
2+
import { useForm as usePrecognitiveForm, client } from 'laravel-precognition-vue'
33
import { useForm as useInertiaForm } from '@inertiajs/vue3'
44

5+
export { client }
6+
57
export const useForm = <Data extends Record<string, unknown>>(method: RequestMethod|(() => RequestMethod), url: string|(() => string), inputs: Data, config: ValidationConfig = {}): any => {
68
/**
79
* The Inertia form.

packages/vue/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import get from 'lodash.get'
66
import { resolveName } from 'laravel-precognition'
77
import set from 'lodash.set'
88

9+
export { client }
10+
911
export const useForm = <Data extends Record<string, unknown>>(method: RequestMethod|(() => RequestMethod), url: string|(() => string), inputs: Data, config: ValidationConfig = {}): Data&Form<Data> => {
1012
/**
1113
* The original data.

0 commit comments

Comments
 (0)