Composables

usePzetaFogliOptions

Accesso alle opzioni risolte del plugin PzetaFogliDiCalcolo iniettate via provide. Throw se il plugin non è installato.

Signature

function usePzetaFogliOptions(): { options: ResolvedPzetaFogliOptions }

Wrapper tipizzato su inject(PZETA_FOGLI_OPTIONS). Tutti i composables interni della libreria lo usano per ottenere postgrestUrl, xlsxServiceUrl, maxVersioni, locale.

Comportamento

  • Ritorna { options } se il plugin è stato installato.
  • Throw se non disponibile:
Error: [usePzetaFogliOptions] Plugin PzetaFogliDiCalcolo non installato.
Assicurati di chiamare app.use(PzetaFogliDiCalcolo, options) prima di usare i composables.

ResolvedPzetaFogliOptions

interface ResolvedPzetaFogliOptions {
  postgrestUrl: string         // slash finale rimosso
  xlsxServiceUrl: string | null
  maxVersioni: number
  locale: string
}
CampoOrigineNote
postgrestUrloptions.postgrestUrl.replace(/\/$/, '')Slash finale rimosso automaticamente
xlsxServiceUrloptions.xlsxServiceUrl ?? nullnull se non configurato
maxVersionioptions.maxVersioni ?? 10Default 10
localeoptions.locale ?? 'it'Default 'it'

Uso

import { usePzetaFogliOptions } from '@pzeta/vue-foglidicalcolo'

const { options } = usePzetaFogliOptions()

console.log(options.postgrestUrl)      // 'https://api.example.com/rest'
console.log(options.maxVersioni)       // 10
console.log(options.locale)            // 'it'

if (options.xlsxServiceUrl) {
  // Feature import/export xlsx disponibile
}

Quando chiamarlo

In setup scope di qualsiasi composable/componente della libreria. Tipicamente all'inizio:

import { usePzetaFogliOptions } from '@pzeta/vue-foglidicalcolo'
import { FogliPostgrestService } from '@pzeta/vue-foglidicalcolo'

export function useMyCustomFoglioComposable() {
  const { options } = usePzetaFogliOptions()
  const service = new FogliPostgrestService(options.postgrestUrl)

  // ... resto del composable
}

PZETA_FOGLI_OPTIONS

import { PZETA_FOGLI_OPTIONS } from '@pzeta/vue-foglidicalcolo'
// Symbol usato come InjectionKey

Esportato pubblicamente per casi avanzati (es. test con provide manuale):

import { mount } from '@vue/test-utils'
import { PZETA_FOGLI_OPTIONS } from '@pzeta/vue-foglidicalcolo'

test('legge postgrestUrl dalle opzioni', () => {
  const options = {
    postgrestUrl: 'https://test.local',
    xlsxServiceUrl: null,
    maxVersioni: 5,
    locale: 'it',
  }
  mount(MyComponent, {
    global: { provide: { [PZETA_FOGLI_OPTIONS as symbol]: options } },
  })
})

Tipi correlati