getting closer
This commit is contained in:
parent
23f7614b29
commit
f8576c0d93
4 changed files with 62 additions and 5 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
/**
|
/**
|
||||||
* Data provider configurations for market data
|
* Data provider configurations for market data
|
||||||
*/
|
*/
|
||||||
import { getEnvVar, validateConfig } from './core';
|
import { getEnvVar, validateConfig, createConfigLoader } from './core';
|
||||||
import { dataProvidersConfigSchema, DataProvidersConfig, DataProviderConfig } from './types';
|
import { dataProvidersConfigSchema, DataProvidersConfig, DataProviderConfig } from './types';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -67,6 +67,18 @@ export function loadDataProviderConfigs(): DataProvidersConfig {
|
||||||
return validateConfig(config, dataProvidersConfigSchema);
|
return validateConfig(config, dataProvidersConfigSchema);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a dynamic configuration loader for data providers
|
||||||
|
*/
|
||||||
|
export const createDataProvidersConfig = createConfigLoader<DataProvidersConfig>(
|
||||||
|
'data-providers',
|
||||||
|
dataProvidersConfigSchema,
|
||||||
|
{
|
||||||
|
providers: defaultDataProviders,
|
||||||
|
defaultProvider: 'alpaca'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Singleton data provider configurations
|
* Singleton data provider configurations
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
* Database configuration for Stock Bot services
|
* Database configuration for Stock Bot services
|
||||||
*/
|
*/
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { getEnvVar, getNumericEnvVar, validateConfig } from './core';
|
import { getEnvVar, getNumericEnvVar, validateConfig, createConfigLoader } from './core';
|
||||||
import { databaseConfigSchema, DatabaseConfig } from './types';
|
import { databaseConfigSchema, DatabaseConfig } from './types';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -76,6 +76,15 @@ export function loadDatabaseConfig(): DatabaseConfig {
|
||||||
return validateConfig(config, databaseConfigSchema);
|
return validateConfig(config, databaseConfigSchema);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a dynamic configuration loader for database config
|
||||||
|
*/
|
||||||
|
export const createDatabaseConfig = createConfigLoader<typeof defaultDatabaseConfig>(
|
||||||
|
'database',
|
||||||
|
databaseConfigSchema,
|
||||||
|
defaultDatabaseConfig
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Singleton database configuration
|
* Singleton database configuration
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
* Loki logging configuration for Stock Bot platform
|
* Loki logging configuration for Stock Bot platform
|
||||||
*/
|
*/
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { getEnvVar, getNumericEnvVar, getBooleanEnvVar } from './core';
|
import { getEnvVar, getNumericEnvVar, getBooleanEnvVar, createConfigLoader, validateConfig } from './core';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loki configuration schema
|
* Loki configuration schema
|
||||||
|
|
@ -49,11 +49,27 @@ function parseLabels(labelsStr?: string): Record<string, string> {
|
||||||
return labels;
|
return labels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default logging configuration
|
||||||
|
*/
|
||||||
|
const defaultLoggingConfig: LoggingConfig = {
|
||||||
|
level: 'info',
|
||||||
|
console: true,
|
||||||
|
loki: {
|
||||||
|
host: 'localhost',
|
||||||
|
port: 3100,
|
||||||
|
retentionDays: 30,
|
||||||
|
labels: {},
|
||||||
|
batchSize: 100,
|
||||||
|
flushIntervalMs: 5000
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load logging configuration from environment variables
|
* Load logging configuration from environment variables
|
||||||
*/
|
*/
|
||||||
export function loadLoggingConfig(): LoggingConfig {
|
export function loadLoggingConfig(): LoggingConfig {
|
||||||
return {
|
const config = {
|
||||||
level: (getEnvVar('LOG_LEVEL') || 'info') as 'debug' | 'info' | 'warn' | 'error',
|
level: (getEnvVar('LOG_LEVEL') || 'info') as 'debug' | 'info' | 'warn' | 'error',
|
||||||
console: getBooleanEnvVar('LOG_CONSOLE', true),
|
console: getBooleanEnvVar('LOG_CONSOLE', true),
|
||||||
loki: {
|
loki: {
|
||||||
|
|
@ -67,8 +83,19 @@ export function loadLoggingConfig(): LoggingConfig {
|
||||||
flushIntervalMs: getNumericEnvVar('LOKI_FLUSH_INTERVAL_MS', 5000)
|
flushIntervalMs: getNumericEnvVar('LOKI_FLUSH_INTERVAL_MS', 5000)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
return validateConfig(config, loggingConfigSchema);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a dynamic configuration loader for logging
|
||||||
|
*/
|
||||||
|
export const createLoggingConfig = createConfigLoader<typeof defaultLoggingConfig>(
|
||||||
|
'logging',
|
||||||
|
loggingConfigSchema,
|
||||||
|
defaultLoggingConfig
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Singleton logging configuration
|
* Singleton logging configuration
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/**
|
/**
|
||||||
* Risk management configuration for trading operations
|
* Risk management configuration for trading operations
|
||||||
*/
|
*/
|
||||||
import { getNumericEnvVar, validateConfig } from './core';
|
import { getNumericEnvVar, validateConfig, createConfigLoader } from './core';
|
||||||
import { riskConfigSchema, RiskConfig } from './types';
|
import { riskConfigSchema, RiskConfig } from './types';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -30,6 +30,15 @@ export function loadRiskConfig(): RiskConfig {
|
||||||
return validateConfig(config, riskConfigSchema);
|
return validateConfig(config, riskConfigSchema);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a dynamic configuration loader for risk management
|
||||||
|
*/
|
||||||
|
export const createRiskConfig = createConfigLoader<typeof defaultRiskConfig>(
|
||||||
|
'risk',
|
||||||
|
riskConfigSchema,
|
||||||
|
defaultRiskConfig
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Singleton risk configuration
|
* Singleton risk configuration
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue