node-twstock
Version:
A client library for scraping Taiwan stock market data
63 lines (62 loc) • 2.26 kB
JavaScript
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;
;