advanced

Configuration

Add to your nuxt.config.ts:

export default defineNuxtConfig({
  modules: ['nuxt-precognition'],
  precognition: {
    backendValidation: true,
    enableNuxtClientErrorParser: true,
    // ...other options
  }
})

Options

nametypedefaultdescription
validationTimeoutnumber1500Debounce time, in milliseconds, between two precognitive validation requests.
backendValidationbooleanfalseFlag to enable the precognitive validation.
validateFilesbooleanfalseFlag to enable files validation on precognitive requests.
enableNuxtClientErrorParserbooleanfalseFlag to enable nuxtErrorParsers on client side (in form.validate and form.submit).
enableLaravelClientErrorParserbooleanfalseFlag to enable laravelErrorParsers on client side (in form.validate and form.submit).
enableLaravelServerErrorParserbooleanfalseFlag 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')
    },
  }
})
Previous
File Upload