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.12 kB
import{Chart}from"../chart/chart.js";import{validateColor}from"./validation.js";export function configureChart(o,t){const l=!!o.output;let e=o.width||0,r=o.height||0;if(l||0!==e&&0!==r)l&&(e=2*t.length,r=Math.max(20,Math.floor(t.length/4)));else{const o={width:0,height:0};if(void 0!==globalThis.process&&globalThis.process.stdout){const{columns:t,rows:l}=globalThis.process.stdout;t&&l&&t>0&&l>0&&(o.width=t,o.height=l)}e=e||o.width||120,r=r||o.height||30}const a={title:o.title||"Candlestick Chart",width:e,height:r},i=new Chart(t,a);return i.setScalingMode("fit"),l||i.fitToData(),configureChartColors(i,o),configureChartVolume(i,o),i}function configureChartColors(o,t){if(t.bearColor){const l=validateColor(t.bearColor,"bear");o.setBearColor(...l);const e=l.map(o=>Math.min(255,Math.floor(1.3*o)));o.setVolBearColor(...e)}if(t.bullColor){const l=validateColor(t.bullColor,"bull");o.setBullColor(...l);const e=l.map(o=>Math.min(255,Math.floor(1.3*o)));o.setVolBullColor(...e)}}function configureChartVolume(o,t){t.volume?(o.setVolumePaneEnabled(!0),o.setVolumePaneHeight(t.volumeHeight||5)):o.setVolumePaneEnabled(!1)}