Files
Compass/common/src/envs/constants.ts
2025-10-17 23:15:15 +02:00

156 lines
3.2 KiB
TypeScript

import {DEV_CONFIG} from './dev'
import {PROD_CONFIG} from './prod'
import {isProd} from "common/envs/is-prod";
export const MAX_DESCRIPTION_LENGTH = 100000
export const MAX_ANSWER_LENGTH = 240
export const ENV_CONFIG = isProd() ? PROD_CONFIG : DEV_CONFIG
export function isAdminId(id: string) {
return ENV_CONFIG.adminIds.includes(id)
}
export function isModId(id: string) {
return MOD_IDS.includes(id)
}
export const ENV = isProd() ? 'prod' : 'dev'
export const IS_PROD = ENV === 'prod'
export const IS_DEV = ENV === 'dev'
export const LOCAL_WEB_DOMAIN = 'localhost:3000';
export const LOCAL_BACKEND_DOMAIN = 'localhost:8088';
export const IS_GOOGLE_CLOUD = !!process.env.GOOGLE_CLOUD_PROJECT
export const IS_VERCEL = !!process.env.NEXT_PUBLIC_VERCEL
export const IS_LOCAL = !IS_GOOGLE_CLOUD && !IS_VERCEL
export const HOSTING_ENV = IS_GOOGLE_CLOUD ? 'Google Cloud' : IS_VERCEL ? 'Vercel' : IS_LOCAL ? 'local' : 'unknown'
console.debug(`Running in ${HOSTING_ENV} (${ENV})`,);
// class MissingKeyError implements Error {
// constructor(key: string) {
// this.message = `Missing ENV_CONFIG.${key} in ${ENV}. If you're running locally, you most likely want to run in dev mode: yarn dev.`
// this.name = 'MissingKeyError'
// }
//
// message: string;
// name: string;
// }
// for (const key of ['supabaseAnonKey', 'supabasePwd', 'googleApplicationCredentials'] as const) {
// if (!(key in ENV_CONFIG) || ENV_CONFIG[key as keyof typeof ENV_CONFIG] == null) {
// throw new MissingKeyError(key)
// }
// }
// if (!ENV_CONFIG.firebaseConfig.apiKey) {
// throw new MissingKeyError('firebaseConfig.apiKey')
// }
export const DOMAIN = IS_LOCAL ? LOCAL_WEB_DOMAIN : ENV_CONFIG.domain
export const BACKEND_DOMAIN = IS_LOCAL ? LOCAL_BACKEND_DOMAIN : ENV_CONFIG.backendDomain
export const FIREBASE_CONFIG = ENV_CONFIG.firebaseConfig
export const PROJECT_ID = ENV_CONFIG.firebaseConfig.projectId
export const AUTH_COOKIE_NAME = `FBUSER_${PROJECT_ID.toUpperCase().replace(
/-/g,
'_'
)}`
export const MOD_IDS = [
'...',
]
export const VERIFIED_USERNAMES = [
'Martin',
]
export const TEN_YEARS_SECS = 60 * 60 * 24 * 365 * 10
export const RESERVED_PATHS = [
'404',
'_app',
'_document',
'_next',
'about',
'ad',
'add-funds',
'admin',
'ads',
'analytics',
'api',
'browse',
'career',
'careers',
'charts',
'chat',
'chats',
'common',
'confirm-email',
'contact',
'contacts',
'create',
'dashboard',
'discord',
'embed',
'facebook',
'faq',
'financials',
'find',
'github',
'google',
'group',
'groups',
'help',
'home',
'index',
'link',
'linkAccount',
'links',
'live',
'login',
'love-questions',
'manifest',
'market',
'markets',
'md',
'members',
'message',
'messages',
'notifications',
'og-test',
'organization',
'payments',
'privacy',
'profile',
'public',
'questions',
'referral',
'referrals',
'register',
'send',
'server-sitemap',
'sign-in',
'sign-in-waiting',
'signin',
'signup',
'sitemap',
'slack',
'social',
'stats',
'styles',
'support',
'team',
'terms',
'tips-bio',
'twitch',
'twitter',
'user',
'users',
'web',
'welcome',
]
export function getStorageBucketId() {
return ENV_CONFIG.firebaseConfig.storageBucket
}