import { aliases } from 'vuetify/iconsets/mdi' import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ devtools: { enabled: true }, modules: [ '@pinia/nuxt', '@vueuse/nuxt', 'vuetify-nuxt-module', // 'nuxt-auth-utils', '@sidebase/nuxt-auth', 'nuxt-echarts', '@nuxt/icon', '@nuxt/eslint', '@nuxt/test-utils/module', '@vueform/nuxt', '@prisma/nuxt', ], css: ['~/assets/styles/index.css'], experimental: { typedPages: true }, typescript: { shim: false, strict: true }, vue: { propsDestructure: true }, vueuse: { ssrHandlers: true }, vuetify: { moduleOptions: { ssrClientHints: { viewportSize: true, prefersColorScheme: true, prefersColorSchemeOptions: {}, reloadOnFirstRequest: true, }, }, }, icon: { clientBundle: { icons: Object.values(aliases).map((v) => (v as string).replace(/^mdi-/, 'mdi:'), ), scan: true, // scan all components in the project and include icons // scan: true, }, customCollections: [ { prefix: 'custom', dir: './assets/icons', }, ], }, echarts: { charts: ['LineChart', 'BarChart', 'PieChart', 'RadarChart'], renderer: 'svg', components: [ 'DataZoomComponent', 'LegendComponent', 'TooltipComponent', 'ToolboxComponent', 'GridComponent', 'TitleComponent', 'DatasetComponent', 'VisualMapComponent', ], }, build: { transpile: ['vuetify'], }, // vite: { // build: { sourcemap: false }, // }, auth: { isEnabled: true, baseURL: process.env.AUTH_ORIGIN, provider: { type: 'authjs', }, globalAppMiddleware: { isEnabled: true, }, }, mongoose: { // uri: 'process.env.MONGODB_URI', // options: {}, modelsDir: 'models', devtools: true, }, compatibilityDate: '2024-08-05', runtimeConfig: { public: { keycloakClient: 'coba-pendaftaran', keycloakIssuer: 'https://auth.rssa.top/realms/sandbox', }, }, })