24
Overview

Nuxt Module and Scoped Routes

Configure formforgeClient options and named scopes for owner-context APIs.

Module registration

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/ui', '@evanschleret/formforgeclient'],
  formforgeClient: {
    baseURL: '/api/formforge/v1',
    credentials: 'include',
    uploadMode: 'staged',
    datetimeMode: 'offset',
    locale: 'en',
    autoImports: true
  }
})

Main formforgeClient options

  • baseURL
  • baseURLParams
  • scopedRoutes
  • defaultScope
  • scopeParams
  • credentials
  • headers
  • uploadMode
  • datetimeMode
  • locale
  • autoImports

Scoped routes

Non-scoped endpoints:

  • /api/formforge/v1/...

Scoped endpoints:

  • /api/formforge/v1/users/{user}/...
  • /api/formforge/v1/teams/{team}/...

Named scope config:

nuxt.config.ts
export default defineNuxtConfig({
  formforgeClient: {
    baseURL: '/api/formforge/v1',
    scopedRoutes: {
      user: {
        prefix: 'users/{user:uuid}',
        paramsFromRoute: {
          user: 'user'
        }
      },
      team: {
        prefix: 'teams/{team}',
        paramsFromRoute: {
          team: 'team'
        }
      }
    },
    defaultScope: 'user'
  }
})

Per-request override has priority over defaultScope:

const management = useFormForgeManagement()

await management.listForms(false, {
  scope: 'team'
})

Scope resolution order

  1. per-request scope
  2. global defaultScope
  3. no scope