{"version":3,"file":"shared-config.mjs","sources":["../../../src/pullClient/shared-config.ts"],"sourcesContent":["import type { SharedConfigCallbacks, SharedConfigParams, TypeStorageManager } from '../types/pull'\nimport type { LoggerInterface } from '../logger'\nimport { LoggerFactory } from '../logger'\nimport { Type } from '../tools/type'\nimport { Text } from '../tools/text'\nimport { StorageManager } from './storage-manager'\nimport { LsKeys } from '../types/pull'\n\nexport class SharedConfig {\n  private _logger: LoggerInterface\n  private readonly _storage: TypeStorageManager\n  private _ttl: number = 24 * 60 * 60\n  private _callbacks: SharedConfigCallbacks\n\n  constructor(params: SharedConfigParams = {}) {\n    this._logger = LoggerFactory.createNullLogger()\n    params = params || {}\n    this._storage = params.storage || new StorageManager()\n\n    this._callbacks = {\n      onWebSocketBlockChanged: Type.isFunction(params.onWebSocketBlockChanged)\n        ? params.onWebSocketBlockChanged\n        : () => {}\n    } as SharedConfigCallbacks\n\n    if (this._storage) {\n      window.addEventListener('storage', this.onLocalStorageSet.bind(this))\n    }\n  }\n\n  setLogger(logger: LoggerInterface): void {\n    this._logger = logger\n  }\n\n  getLogger(): LoggerInterface {\n    return this._logger\n  }\n\n  private onLocalStorageSet(params: StorageEvent): void {\n    if (\n      (this._storage as StorageManager).compareKey(\n        params.key || '',\n        LsKeys.WebsocketBlocked\n      )\n      && params.newValue !== params.oldValue\n    ) {\n      this._callbacks.onWebSocketBlockChanged({\n        isWebSocketBlocked: this.isWebSocketBlocked()\n      })\n    }\n  }\n\n  isWebSocketBlocked(): boolean {\n    if (!this._storage) {\n      return false\n    }\n\n    return this._storage.get(LsKeys.WebsocketBlocked, 0) > Date.now()\n  }\n\n  setWebSocketBlocked(isWebSocketBlocked: boolean): boolean {\n    if (!this._storage) {\n      return false\n    }\n\n    try {\n      this._storage.set(\n        LsKeys.WebsocketBlocked,\n        isWebSocketBlocked ? Date.now() + this._ttl : 0\n      )\n    } catch (error) {\n      this.getLogger().error(\n        `${Text.getDateForLog()}: Pull: Could not save WS_blocked flag in local storage`,\n        { error }\n      )\n\n      return false\n    }\n\n    return true\n  }\n\n  isLongPollingBlocked(): boolean {\n    if (!this._storage) {\n      return false\n    }\n\n    return this._storage.get(LsKeys.LongPollingBlocked, 0) > Date.now()\n  }\n\n  setLongPollingBlocked(isLongPollingBlocked: boolean) {\n    if (!this._storage) {\n      return false\n    }\n\n    try {\n      this._storage.set(\n        LsKeys.LongPollingBlocked,\n        isLongPollingBlocked ? Date.now() + this._ttl : 0\n      )\n    } catch (error) {\n      this.getLogger().error(\n        `${Text.getDateForLog()}: Pull: Could not save LP_blocked flag in local storage.`,\n        { error }\n      )\n\n      return false\n    }\n\n    return true\n  }\n\n  isLoggingEnabled(): boolean {\n    if (!this._storage) {\n      return false\n    }\n\n    return this._storage.get(LsKeys.LoggingEnabled, 0) > this.getTimestamp()\n  }\n\n  setLoggingEnabled(isLoggingEnabled: boolean): boolean {\n    if (!this._storage) {\n      return false\n    }\n\n    try {\n      this._storage.set(\n        LsKeys.LoggingEnabled,\n        isLoggingEnabled ? this.getTimestamp() + this._ttl : 0\n      )\n    } catch (error) {\n      this.getLogger().error(\n        `${Text.getDateForLog()}: LocalStorage error.`,\n        { error }\n      )\n\n      return false\n    }\n\n    return true\n  }\n\n  // region Tools ////\n  getTimestamp(): number {\n    return Date.now()\n  }\n  // endregion ////\n}\n"],"names":[],"mappings":"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"}