All files / libs/config/src marketdata.ts

0% Statements 0/11
100% Branches 0/0
0% Functions 0/3
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                                                   
import { z } from 'zod';
import dotenv from 'dotenv';
 
dotenv.config();
 
const schema = z.object({
  MARKETDATA_EXCHANGES: z.string().default('bybit,binance'),
  MARKETDATA_SYMBOLS: z.string().default('BTCUSDT,ETHUSDT'),
});
 
export type MarketdataConfig = {
  exchanges: string[];
  symbols: string[];
};
 
export function loadMarketdataConfig(): MarketdataConfig {
  const env = schema.parse(process.env);
  const exchanges = env.MARKETDATA_EXCHANGES.split(',')
    .map((s) => s.trim())
    .filter(Boolean);
  const symbols = env.MARKETDATA_SYMBOLS.split(',')
    .map((s) => s.trim())
    .filter(Boolean);
  return { exchanges, symbols };
}