Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 1x | import { SettingsJSON } from "../types/settings" import { SettingsStorage, UiWindow } from "../types/wrapper" import { SettingsManager } from "./SettingsManager" import { APIHandler } from "./APIHandler" import { UiUpdater } from "./UiUpdater" import { UrlObserver } from "./UrlObserver" import { ChromeSettingsStorage } from "./ChromeSettingsStorage" import { StatsUpdater } from "./StatsUpdater" import { StatsCalculator } from "./StatsCalculator" import { BrowserUiWindow } from "./BrowserUiWindow" import { MockSettingsStorage } from "../../tests/mocks/MockSettingsStorage" import settingsData from "../../settings.json" with { type: "json" } const settingsJSON: SettingsJSON = settingsData as SettingsJSON /** * Factory class for creating instances of StatsUpdater with different settings. */ export class StatsUpdaterFactory { /** * Create a new StatsUpdater instance with the specified settings. * * @param {SettingsStorage} storageManager - The storage manager for settings. * @param {UiWindow} uiWindow - The window object for the browser. * @returns {StatsUpdater} A new StatsUpdater instance. */ static createStatsUpdater( storageManager: SettingsStorage = new ChromeSettingsStorage(), uiWindow: UiWindow = new BrowserUiWindow() ): StatsUpdater { return new StatsUpdater({ settingsJSON, settingsManager: new SettingsManager(storageManager, settingsJSON), apiHandler: new APIHandler(settingsJSON), uiUpdater: new UiUpdater(settingsJSON, uiWindow), statsCalculator: new StatsCalculator(settingsJSON), urlObserver: new UrlObserver(uiWindow), uiWindow }) } /** * Create a new StatsUpdater instance for testing purposes. * * @param {SettingsStorage} storageManager - The storage manager for settings. * @param {UiWindow} uiWindow - The window object for the browser. * @returns {StatsUpdater} A new StatsUpdater instance for testing. */ static createStatsUpdaterForTest( storageManager: SettingsStorage = new MockSettingsStorage(), uiWindow: UiWindow ): StatsUpdater { return new StatsUpdater({ settingsJSON, settingsManager: new SettingsManager(storageManager, settingsJSON), apiHandler: new APIHandler(settingsJSON), uiUpdater: new UiUpdater(settingsJSON, uiWindow), statsCalculator: new StatsCalculator(settingsJSON), urlObserver: new UrlObserver(uiWindow), uiWindow }) } } |