import type { IFetcher } from '~/models/fetcher'; import { JSDOM } from 'jsdom'; import { Logger } from '~/models/logger'; import type { LoggingService } from '~/models/logging-service'; import nodeFetch from 'node-fetch'; import { RTScraperGeneric } from '~/models/rt-scraper-generic'; const bodyProducer = (html: string): HTMLBodyElement | null => { const { window: { document } } = new JSDOM(html); const body = document.querySelector('body'); return body; }; const fetcher = nodeFetch as unknown as IFetcher; export class RTScraper extends RTScraperGeneric { constructor ( shouldLog = true, // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types loggingService: LoggingService = console ) { super(fetcher, bodyProducer, shouldLog, new Logger(loggingService)); } }