Files
lettersoup-online/002_source/cms/src/config.ts
louiscklaw 6c931c1fe8 build ok,
2025-04-14 09:26:24 +08:00

69 lines
2.5 KiB
TypeScript

import { AuthStrategy } from '@/lib/auth/strategy';
import { getSiteURL } from '@/lib/get-site-url';
import { LogLevel } from '@/lib/logger';
import type { ColorScheme, PrimaryColor } from '@/styles/theme/types';
export interface Config {
site: {
name: string;
description: string;
colorScheme: ColorScheme;
primaryColor: PrimaryColor;
themeColor: string;
url: string;
version: string;
};
logLevel: keyof typeof LogLevel;
auth: { strategy: keyof typeof AuthStrategy };
auth0: { secret?: string; baseUrl?: string; issuerBaseUrl?: string; clientId?: string; clientSecret?: string };
cognito: { identityPoolId?: string; userPoolClientId?: string; userPoolId?: string };
firebase: {
apiKey?: string;
appId?: string;
authDomain?: string;
messagingSenderId?: string;
projectId?: string;
storageBucket?: string;
};
supabase: { url?: string; anonKey?: string };
mapbox: { apiKey?: string };
gtm?: { id?: string };
}
export const config = {
site: {
name: 'Devias Kit Pro',
description: '',
colorScheme: 'light',
themeColor: '#090a0b',
primaryColor: 'neonBlue',
url: getSiteURL(),
version: process.env.NEXT_PUBLIC_SITE_VERSION || '0.0.0',
},
logLevel: (process.env.NEXT_PUBLIC_LOG_LEVEL as keyof typeof LogLevel) || LogLevel.ALL,
auth: { strategy: (process.env.NEXT_PUBLIC_AUTH_STRATEGY as keyof typeof AuthStrategy) || AuthStrategy.CUSTOM },
auth0: {
secret: process.env.AUTH0_SECRET,
baseUrl: process.env.AUTH0_BASE_URL,
issuerBaseUrl: process.env.AUTH0_ISSUER_BASE_URL,
clientId: process.env.AUTH0_CLIENT_ID,
clientSecret: process.env.AUTH0_CLIENT_SECRET,
},
cognito: {
identityPoolId: process.env.NEXT_PUBLIC_COGNITO_IDENTITY_POOL_ID,
userPoolClientId: process.env.NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID,
userPoolId: process.env.NEXT_PUBLIC_COGNITO_USER_POOL_ID,
},
firebase: {
apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
},
supabase: { url: process.env.NEXT_PUBLIC_SUPABASE_URL, anonKey: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY },
mapbox: { apiKey: process.env.NEXT_PUBLIC_MAPBOX_API_KEY },
gtm: { id: process.env.NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID },
} satisfies Config;