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'
})