39 lines
No EOL
1.6 KiB
TypeScript
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 }; |