advanced
Configuration
Add to your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['nuxt-precognition'],
precognition: {
backendValidation: true,
enableNuxtClientErrorParser: true,
// ...other options
}
})
Options
| name | type | default | description |
|---|---|---|---|
| validationTimeout | number | 1500 | Debounce time, in milliseconds, between two precognitive validation requests. |
| backendValidation | boolean | false | Flag to enable the precognitive validation. |
| validateFiles | boolean | false | Flag to enable files validation on precognitive requests. |
| enableNuxtClientErrorParser | boolean | false | Flag to enable nuxtErrorParsers on client side (in form.validate and form.submit). |
| enableLaravelClientErrorParser | boolean | false | Flag to enable laravelErrorParsers on client side (in form.validate and form.submit). |
| enableLaravelServerErrorParser | boolean | false | Flag to enable laravelErrorParsers on server side (in definePrecognitiveEventHandler). |
Status Handlers
Like in official package, you can define globally, or @instance level, custom handlers for specific error codes:
// plugins/precognition.ts
export default defineNuxtPlugin(() => {
const { $precognition } = useNuxtApp()
$precognition.statusHandlers = {
401: async (error, form) => {
console.error(error)
form.error = createError('Unauthorized')
await navigateTo('/login')
},
403: async (error, form) => {
console.error(error)
form.error = createError('Forbidden')
},
}
})