UNPKG

@baguskto/saham

Version:

MCP Server untuk data saham Indonesia (IDX) - Implementasi Node.js/TypeScript

54 lines 2.04 kB
"use strict"; /** * Data sources management */ Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeDataSources = initializeDataSources; exports.getDataSourceManager = getDataSourceManager; exports.getDataSourceStats = getDataSourceStats; const base_1 = require("./base"); const yahoo_finance_1 = require("./yahoo-finance"); const web_scraper_1 = require("./web-scraper"); const github_dataset_1 = require("./github-dataset"); const logger_1 = require("../utils/logger"); let dataSourceManager; function initializeDataSources() { if (dataSourceManager) { return dataSourceManager; } dataSourceManager = new base_1.DataSourceManager(); // Initialize data sources in priority order try { // Primary source for historical data: GitHub Dataset const githubSource = new github_dataset_1.GitHubDatasetSource(); dataSourceManager.addSource(githubSource); logger_1.logger.info('GitHub Dataset-Saham-IDX source initialized'); // Primary source for live data: Yahoo Finance const yahooSource = new yahoo_finance_1.YahooFinanceSource(); dataSourceManager.addSource(yahooSource); logger_1.logger.info('Yahoo Finance data source initialized'); // Fallback source: Web Scraping const webSource = new web_scraper_1.WebScrapingSource(); dataSourceManager.addSource(webSource); logger_1.logger.info('Web scraping data source initialized'); } catch (error) { logger_1.logger.error('Failed to initialize data sources:', error); throw error; } logger_1.logger.info(`Initialized ${dataSourceManager.getHealthySources().length} data sources`); return dataSourceManager; } function getDataSourceManager() { if (!dataSourceManager) { return initializeDataSources(); } return dataSourceManager; } function getDataSourceStats() { if (!dataSourceManager) { return {}; } return dataSourceManager.getStats(); } //# sourceMappingURL=index.js.map