UNPKG

node-twstock

Version:

A client library for scraping Taiwan stock market data

63 lines (62 loc) 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScraperFactory = void 0; const twse_scraper_1 = require("./twse-scraper"); const tpex_scraper_1 = require("./tpex-scraper"); const taifex_scraper_1 = require("./taifex-scraper"); const tdcc_scraper_1 = require("./tdcc-scraper"); const mis_twse_scraper_1 = require("./mis-twse-scraper"); const mis_taifex_scraper_1 = require("./mis-taifex-scraper"); const mops_scraper_1 = require("./mops-scraper"); const isin_scraper_1 = require("./isin-scraper"); const enums_1 = require("../enums"); class ScraperFactory { constructor(options) { this.options = options; this.scrapers = new Map(); } get(type) { let scraper = this.scrapers.get(type); if (!scraper) { const scrapers = { [enums_1.Scraper.Twse]: twse_scraper_1.TwseScraper, [enums_1.Scraper.Tpex]: tpex_scraper_1.TpexScraper, [enums_1.Scraper.Taifex]: taifex_scraper_1.TaifexScraper, [enums_1.Scraper.Tdcc]: tdcc_scraper_1.TdccScraper, [enums_1.Scraper.MisTwse]: mis_twse_scraper_1.MisTwseScraper, [enums_1.Scraper.MisTaifex]: mis_taifex_scraper_1.MisTaifexScraper, [enums_1.Scraper.Mops]: mops_scraper_1.MopsScraper, [enums_1.Scraper.Isin]: isin_scraper_1.IsinScraper, }; const ScraperClass = scrapers[type]; scraper = new ScraperClass(this.options); this.scrapers.set(type, scraper); } return scraper; } getTwseScraper() { return this.get(enums_1.Scraper.Twse); } getTpexScraper() { return this.get(enums_1.Scraper.Tpex); } getTaifexScraper() { return this.get(enums_1.Scraper.Taifex); } getTdccScraper() { return this.get(enums_1.Scraper.Tdcc); } getMisTwseScraper() { return this.get(enums_1.Scraper.MisTwse); } getMisTaifexScraper() { return this.get(enums_1.Scraper.MisTaifex); } getMopsScraper() { return this.get(enums_1.Scraper.Mops); } getIsinScraper() { return this.get(enums_1.Scraper.Isin); } } exports.ScraperFactory = ScraperFactory;