UNPKG

@neabyte/candlestick-cli

Version:

Beautiful terminal candlestick charts with real-time trading data. Create stunning ASCII art charts directly in your terminal with support for live market data, custom colors, and professional trading visualization.

1 lines 1.08 kB
import{readFileSync}from"fs";import{join}from"path";import{parseCandlesFromCsv,parseCandlesFromJson}from"../utils/core.js";import{validateFile}from"./validation.js";export function processFile(e){if(!e.file)throw new Error("File path is required");const t=e.file.startsWith("/")?e.file:join(process.cwd(),e.file);validateFile(t);const i=readFileSync(t,"utf-8");if(e.file.endsWith(".csv"))return parseCandlesFromCsv(i);if(e.file.endsWith(".json"))return parseCandlesFromJson(i);throw new Error("Unsupported file format")}export async function fetchLiveData(e,t,i){const{CCXTProvider:r}=await import("../core/ccxt.js"),o=new r;return(await o.fetchOHLCV(e,t,i)).map(e=>({...e,volume:e.volume||0}))}export async function fetchData(e){if(e.file)return processFile(e);if(e.symbol){const{validateLiveDataOptions:t}=await import("./validation.js");t(e.symbol,e.timeframe,e.limit);const i=await fetchLiveData(e.symbol,e.timeframe,e.limit);return e.title&&"Candlestick Chart"!==e.title||(e.title=`${e.symbol} ${e.timeframe?.toUpperCase()} Chart`),i}throw new Error("No data source specified")}