UNPKG

sec-edgar-toolkit

Version:

Open source toolkit to facilitate working with the SEC EDGAR database

61 lines 2.34 kB
"use strict"; /** * Company endpoints for SEC EDGAR API */ Object.defineProperty(exports, "__esModule", { value: true }); exports.CompanyEndpoints = void 0; const SEC_BASE_URL = 'https://data.sec.gov'; class CompanyEndpoints { constructor(httpClient) { this.companyTickersCache = null; this.httpClient = httpClient; } async getCompanyTickers(forceRefresh = false) { if (!this.companyTickersCache || forceRefresh) { const url = `${SEC_BASE_URL}/files/company_tickers.json`; this.companyTickersCache = await this.httpClient.get(url); } return this.companyTickersCache; } async getCompanyByTicker(ticker) { const tickers = await this.getCompanyTickers(); const upperTicker = ticker.toUpperCase(); for (const [, company] of Object.entries(tickers)) { if (typeof company === 'object' && company !== null && 'ticker' in company) { if (company.ticker?.toUpperCase() === upperTicker) { return company; } } } return null; } async getCompanyByCik(cik) { const tickers = await this.getCompanyTickers(); const cikStr = typeof cik === 'number' ? cik.toString().padStart(10, '0') : cik.padStart(10, '0'); for (const [, company] of Object.entries(tickers)) { if (typeof company === 'object' && company !== null && 'cik_str' in company) { if (company.cik_str === cikStr) { return company; } } } return null; } async searchCompanies(query) { const tickers = await this.getCompanyTickers(); const lowerQuery = query.toLowerCase(); const results = []; for (const [, company] of Object.entries(tickers)) { if (typeof company === 'object' && company !== null && 'title' in company) { const companyData = company; if (companyData.title?.toLowerCase().includes(lowerQuery) || companyData.ticker?.toLowerCase().includes(lowerQuery)) { results.push(companyData); } } } return results; } } exports.CompanyEndpoints = CompanyEndpoints; //# sourceMappingURL=company.js.map