Files
simrsx-fe/nuxt.config.ts
2025-11-19 16:47:23 +07:00

116 lines
3.9 KiB
TypeScript

import process from 'node:process'
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
devtools: { enabled: true },
runtimeConfig: {
API_ORIGIN: process.env.NUXT_API_ORIGIN || 'http://localhost:3000',
VCLAIM: process.env.NUXT_API_VCLAIM || 'http://localhost:3000',
VCLAIM_SWAGGER: process.env.NUXT_API_VCLAIM_SWAGGER || 'http://localhost:3000',
//SSO
X_AP_CODE: process.env.X_AP_CODE || 'rssa-sso',
X_AP_SECRET_KEY: process.env.X_AP_SECRET_KEY || 'sapiperah',
SSO_CONFIRM_URL: process.env.SSO_CONFIRM_URL || 'https://auth.rssa.top/realms/sandbox/protocol/openid-connect/userinfo',
NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID || 'portal-simrs-new',
NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET || 'awoiehrw3w8942341k1ln4',
NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL || 'https://auth.dev.rssa.id/realms/sandbox',
KEYCLOAK_LOGOUT_REDIRECT: process.env.KEYCLOAK_LOGOUT_REDIRECT || 'http://localhost:3000',
//test
KEYCLOAK_REALM: process.env.KEYCLOAK_REALM || 'sandbox',
KEYCLOAK_URL: process.env.KEYCLOAK_URL || 'https://auth.dev.rssa.id/',
public: {
API_ORIGIN: process.env.NUXT_API_ORIGIN || 'http://localhost:3000',
VCLAIM: process.env.NUXT_API_VCLAIM || 'http://localhost:3000',
VCLAIM_SWAGGER: process.env.NUXT_API_VCLAIM_SWAGGER || 'http://localhost:3000',
//SSO
X_AP_CODE: process.env.X_AP_CODE || 'rssa-sso',
X_AP_SECRET_KEY: process.env.X_AP_SECRET_KEY || 'sapiperah',
SSO_CONFIRM_URL: process.env.SSO_CONFIRM_URL || 'https://auth.rssa.top/realms/sandbox/protocol/openid-connect/userinfo',
NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID || 'portal-simrs-new',
NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET || 'awoiehrw3w8942341k1ln4',
NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL || 'https://auth.dev.rssa.id/realms/sandbox',
KEYCLOAK_LOGOUT_REDIRECT: process.env.KEYCLOAK_LOGOUT_REDIRECT || 'http://localhost:3000',
//test
KEYCLOAK_REALM: process.env.KEYCLOAK_REALM || 'sandbox',
KEYCLOAK_URL: process.env.KEYCLOAK_URL || 'https://auth.dev.rssa.id/',
},
},
ssr: false,
// SPA optimizations
router: {
options: {
hashMode: false, // Use history mode for cleaner URLs
},
},
// Enable client-side rendering optimizations
nitro: {
prerender: {
crawlLinks: false, // Disable crawling for SPA
},
},
// Optimize app loading
app: {
head: {
viewport: 'width=device-width,initial-scale=1',
charset: 'utf-8',
},
},
modules: [
'@unocss/nuxt',
'@vueuse/nuxt',
'@nuxt/eslint',
'@nuxt/icon',
'@pinia/nuxt',
'@nuxtjs/color-mode',
'@nuxtjs/tailwindcss',
'shadcn-nuxt',
'nuxt-oidc-auth',
],
oidc: {
defaultProvider: 'keycloak',
keycloak: {
audience: 'account',
baseUrl: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_BASE_URL, // change to your OP addrress
clientId: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_ID,
clientSecret: process.env.NUXT_OIDC_PROVIDERS_KEYCLOAK_CLIENT_SECRET,
redirectUri: process.env.KEYCLOAK_LOGOUT_REDIRECT, // optional
},
middleware: {
globalMiddlewareEnabled: true,
customLoginPage: true
}
},
css: ['@unocss/reset/tailwind.css', '~/assets/css/main.css'],
features: {
// For UnoCSS
inlineStyles: false,
},
imports: {
dirs: ['./app/lib'],
},
shadcn: {
prefix: '',
componentDir: './app/components/pub/ui',
},
colorMode: {
classSuffix: '',
},
eslint: {
config: {
standalone: false,
},
},
compatibilityDate: '2025-07-15',
})