stock-bot/apps/wcag-ada/api/src/config.ts
2025-06-28 11:11:34 -04:00

39 lines
No EOL
1.6 KiB
TypeScript

import { initializeWcagConfig, getWcagConfig } from '@wcag-ada/config';
// Initialize configuration for API service
const appConfig = initializeWcagConfig('api');
// Export a config object that matches the expected interface
export const config = {
NODE_ENV: appConfig.environment as 'development' | 'production' | 'test',
PORT: appConfig.services.api.port,
// Database
DATABASE_URL: process.env.DATABASE_URL ||
`postgresql://${appConfig.database.postgres.user || 'postgres'}:${appConfig.database.postgres.password || 'postgres'}@${appConfig.database.postgres.host}:${appConfig.database.postgres.port}/${appConfig.database.postgres.database}`,
REDIS_URL: `redis://${appConfig.worker.redis.host}:${appConfig.worker.redis.port}/${appConfig.worker.redis.db}`,
// Auth
JWT_SECRET: appConfig.providers.auth.jwt.secret,
JWT_EXPIRES_IN: appConfig.providers.auth.jwt.expiresIn,
// Scanner
SCANNER_CONCURRENCY: appConfig.scanner.concurrency,
SCANNER_TIMEOUT: appConfig.scanner.timeout,
// API Rate Limiting
API_RATE_LIMIT: appConfig.services.api.rateLimit.max,
API_RATE_WINDOW: appConfig.services.api.rateLimit.windowMs,
// Storage
REPORT_STORAGE_PATH: `${appConfig.providers.storage.local.basePath}/${appConfig.providers.storage.local.reports}`,
SCREENSHOT_STORAGE_PATH: `${appConfig.providers.storage.local.basePath}/${appConfig.providers.storage.local.screenshots}`,
// CORS
CORS_ORIGIN: appConfig.services.api.cors.origin,
};
export type Config = typeof config;
// Export the full app config for advanced usage
export { appConfig };