EN
Panduan Memulai

Referensi Konfigurasi

Referensi lengkap untuk opsi modul di nuxt.config.ts, tipe TypeScript, dan peta routing sheet.

Referensi lengkap untuk seluruh opsi konfigurasi, environment variable, dan interface TypeScript yang tersedia di nuxt-gsheet.


Opsi Modul (nuxt.config.ts)

Atur opsi nuxt-gsheet secara global pada nuxt.config.ts di bawah key gsheet:

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-gsheet'],

  gsheet: {
    // Override mode ('apikey' | 'service-account' | 'appscript' | 'gviz' | 'csv')
    auth: undefined, // Otomatis mendeteksi dari env vars jika dikosongkan

    // Spreadsheet ID Default
    spreadsheetId: undefined,

    // Google API Key (untuk sheet publik)
    apiKey: undefined,

    // URL Google Apps Script Web App
    appscriptUrl: undefined,

    // Kredensial Service Account (untuk sheet privat)
    credentials: {
      clientEmail: '',
      privateKey: ''
    },

    // Peta Routing Sheet (key alias -> ID/URL/GID)
    sheets: {
      products: '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms',
      submissions: 'https://script.google.com/macros/s/.../exec'
    },

    // Pengaturan Cache
    cache: {
      enabled: true,
      maxAge: 300, // TTL dalam detik (default: 5 menit)
      storage: 'memory' // Storage driver
    }
  }
})

Interface TypeScript

1. ModuleOptions

export interface ModuleOptions {
  auth?: 'apikey' | 'service-account' | 'appscript' | 'gviz' | 'csv' | 'oauth2'
  apiKey?: string
  spreadsheetId?: string
  appscriptUrl?: string
  credentials?: {
    clientEmail: string
    privateKey: string
  }
  sheets?: Record<string, string | number>
  cache?: {
    enabled?: boolean
    maxAge?: number
    storage?: 'memory' | string
  }
}

2. ComposablesOptions

Diberikan sebagai parameter kedua pada composable useGSheet, useGSheetAsObject, dan useGSheetRow:

export interface ComposablesOptions {
  sheet?: string // Nama tab sheet target atau alias
  valueRenderOption?: 'FORMATTED_VALUE' | 'UNFORMATTED_VALUE' | 'FORMULA'
  transform?: (data: any) => any // Fungsi transformer respons kustom di server-side
  cache?: boolean // Set ke false untuk bypass cache
  cacheMaxAge?: number // Override TTL cache untuk request tunggal (detik)
  query?: string // String filter query GViz SQL
  key?: string // Key cache unik untuk Nuxt useFetch
}

3. GSheetWriteOptions

Diberikan ke fungsi append, update, dan clear dari composable useGSheetWrite:

export interface GSheetWriteOptions {
  sheet?: string
  range?: string
  values?: any[][]
  row?: any[]
}

Peta Routing Sheet (sheets)

Gunakan properti sheets untuk memetakan alias nama yang mudah dibaca ke spreadsheet ID atau URL Apps Script tertentu. Ini menghindarkan kita dari hardcoding ID spreadsheet di dalam composable:

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-gsheet'],

  gsheet: {
    sheets: {
      products: '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms',
      orders: '19rQ1234567890abcdefghijklmnopqrstuvwxyz'
    }
  }
})

Penggunaan di dalam komponen:

// Secara otomatis teresolusi ke spreadsheet ID milik 'products'
const { data: products } = await useGSheetAsObject('A1:C20', {
  sheet: 'products'
})