How leo4815162342/dukascopy-node works
dukascopy-node is a Node.js library and CLI for downloading historical and real-time market-price data across many instrument classes. Its documented workflow accepts an instrument, date range, timeframe and output options, then retrieves and processes tick or candle data for return or file output. The tree identifies distinct validation, date, URL, fetch, normalization, aggregation and formatting stages. Sampled source confirms URL construction, fetching/cache behavior, normalization, aggregation and output responsibilities; orchestration links not evident in the excerpts are left out.
Main entry points: buffer-fetcher/index.ts Batched buffer fetch · url-generator/index.ts Data URL generation · getHistoricalRates.ts Historical rates API · getRealTimeRates.ts Real-time rates API
Components 18
User interfaces
- Historical rates API
src/getHistoricalRates.ts - Real-time rates API
src/getRealTimeRates.ts - CLI interface
src/cli/index.ts
Request planning
- Request configuration
src/config/index.ts - Config validation
src/config-validator/index.ts - Date normalization
src/dates-normaliser/index.ts - Data URL generation
src/url-generator/index.ts - Instrument metadata
src/config/instruments-metadata.ts
Data retrieval
- Batched buffer fetch
src/buffer-fetcher/index.ts - Response cache
src/cache-manager/index.ts
Data processing
- Data processing
src/processor/index.ts - Response normalization
src/data-normaliser/index.ts - Timeframe aggregation
src/aggregator/index.ts
Output delivery
- Result formatting
src/output-formatter/index.ts - Streaming file output
src/stream-writer/index.ts - CLI display
src/cli/printer.ts
Other components
- Library or CLI user
- Dukascopy data API
Connections 6
- Library or CLI user → Historical rates API: requests history
- Library or CLI user → Real-time rates API: requests live data
- Library or CLI user → CLI interface: runs command
- Data URL generation → Instrument metadata: reads instrument data
- Batched buffer fetch → Dukascopy data API: fetches URLs
- Batched buffer fetch → Response cache: reads and writes