{"version":3,"sources":["../../src/utils/getAsyncState.ts"],"names":["_timeoutId","_isLoadable","_timeout","_unload","executeSetters_default","_callbacks","_value","_commonSet","_tickEnd","_isLoaded","_attempt","_reloadIfStale","_reloadOnFocus","_counter","_promise","_resolve","_slowLoading","RESOLVED_PROMISE","state","_focusListener","noop","_isFetchInProgress","_keys","_load","addToBatch","_parent","_reject","_onValueChange","createSubscribe_default","get","handleState_default","_root","alwaysTrue_default","_tickStart","_children","createSimpleState_default","_subscribeWithError","alwaysNoop_default","_subscribeWithLoad","_valueToggler","createLoadableSubscribe","createSubscribeWithError"],"mappings":"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","file":"chunk-JJVVCXYS.cjs","sourcesContent":["import noop from 'lodash.noop';\nimport type {\n  ValueChangeCallbacks,\n  AnyAsyncState,\n  AsyncState,\n  ErrorState,\n  LoadableState,\n  LoadableStateOptions,\n  Mutable,\n  PaginatedStorage,\n  StateInitializer,\n} from '../types';\nimport alwaysTrue from './alwaysTrue';\nimport { addToBatch } from './batching';\nimport executeSetters from './executeSetters';\nimport handleState from './handleState';\nimport { get } from './state/common';\nimport createSimpleState from './createSimpleState';\nimport createSubscribe from './createSubscribe';\nimport alwaysNoop from './alwaysNoop';\nimport {\n  createLoadableSubscribe,\n  createSubscribeWithError,\n} from './createAsyncSubscribe';\nimport { RESOLVED_PROMISE } from './constants';\n\nconst handleReloadOn = (\n  reloadData: NonNullable<AsyncState['_reloadIfStale']>,\n  utils: { _isLoadable: boolean }\n) => {\n  clearTimeout(reloadData._timeoutId);\n\n  reloadData._timeoutId = setTimeout(() => {\n    utils._isLoadable = true;\n  }, reloadData._timeout);\n};\n\nconst handleUnload = (data: AsyncState) => {\n  if (data._unload) {\n    data._unload = data._unload();\n  }\n};\n\nconst handleSlowLoading = (\n  slowLoading: AsyncState['_slowLoading'],\n  isLoaded: boolean\n) => {\n  if (slowLoading) {\n    clearTimeout(slowLoading._timeoutId);\n\n    slowLoading._timeoutId = isLoaded\n      ? undefined\n      : setTimeout(() => {\n          executeSetters(slowLoading._callbacks);\n        }, slowLoading._timeout);\n  }\n};\n\nfunction set(\n  this: LoadableState,\n  value: any,\n  path?: readonly string[],\n  isError?: boolean\n) {\n  const self = this;\n\n  const prevRootValue = self._value;\n\n  self._commonSet(value, path);\n\n  self._tickEnd();\n\n  const newRootValue = self._value;\n\n  const isSet = newRootValue !== undefined;\n\n  const isLoaded = isSet\n    ? self._isLoaded(newRootValue, prevRootValue, self._attempt)\n    : isError || false;\n\n  if (self._attempt != null) {\n    if (isLoaded) {\n      self._attempt = 0;\n    } else {\n      self._attempt++;\n    }\n  }\n\n  self.isLoaded.set(isLoaded);\n\n  if (isLoaded) {\n    self._isLoadable = false;\n\n    handleUnload(self);\n\n    const { _reloadIfStale, _reloadOnFocus } = self;\n\n    if (_reloadIfStale) {\n      handleReloadOn(_reloadIfStale, self);\n    }\n\n    if (_reloadOnFocus) {\n      handleReloadOn(_reloadOnFocus, _reloadOnFocus);\n    }\n  }\n\n  if (!isError) {\n    self.error.set(undefined);\n\n    if (!isSet) {\n      if (self._counter) {\n        self.load(true)();\n      } else {\n        self._isLoadable = true;\n      }\n    } else if (self._promise) {\n      self._promise._resolve(newRootValue);\n\n      self._promise = null;\n    }\n  }\n\n  handleSlowLoading(self._slowLoading, isLoaded);\n}\n\nconst loaderCleanupSet = new Set<LoadableState>();\n\nlet isLoadCleanupPending = true;\n\nconst batchedUnload = (state: LoadableState) => {\n  loaderCleanupSet.add(state);\n\n  if (isLoadCleanupPending) {\n    isLoadCleanupPending = false;\n\n    RESOLVED_PROMISE.then(() => {\n      const it = loaderCleanupSet.values();\n\n      for (let i = loaderCleanupSet.size; i--; ) {\n        const state: LoadableState = it.next().value;\n\n        if (!state._counter) {\n          handleUnload(state);\n\n          if (!state.isLoaded._value) {\n            state._isLoadable = true;\n          }\n\n          if (state._reloadOnFocus) {\n            document.removeEventListener(\n              'visibilitychange',\n              state._reloadOnFocus._focusListener!\n            );\n          }\n        }\n      }\n\n      loaderCleanupSet.clear();\n\n      isLoadCleanupPending = true;\n    });\n  }\n};\n\nfunction load(this: LoadableState, reload?: boolean) {\n  let cleanup = () => {\n    cleanup = noop;\n\n    if (!--self._counter) {\n      batchedUnload(self);\n    }\n  };\n\n  const self = this;\n\n  const { _reloadOnFocus } = self;\n\n  if (reload && !self._isFetchInProgress) {\n    handleUnload(self);\n\n    self._isLoadable = true;\n  }\n\n  if (self._isLoadable) {\n    self._isLoadable = false;\n\n    self.isLoaded.set(false);\n\n    handleSlowLoading(self._slowLoading, false);\n\n    if (_reloadOnFocus && _reloadOnFocus._timeoutId != null) {\n      clearInterval(_reloadOnFocus._timeoutId);\n\n      _reloadOnFocus._timeoutId = undefined;\n    }\n\n    if (self._reloadIfStale && self._reloadIfStale._timeoutId != null) {\n      clearInterval(self._reloadIfStale._timeoutId);\n\n      self._reloadIfStale._timeoutId = undefined;\n    }\n\n    const keys = self._keys;\n\n    const unload = keys ? self._load!(...keys) : self._load!();\n\n    if (unload) {\n      self._unload = unload;\n    }\n  }\n\n  if (_reloadOnFocus && !_reloadOnFocus._focusListener) {\n    const listener = () => {\n      if (!document.hidden && _reloadOnFocus._isLoadable) {\n        _reloadOnFocus._isLoadable = false;\n\n        self.load(true)();\n      }\n    };\n\n    _reloadOnFocus._focusListener = listener;\n\n    document.addEventListener('visibilitychange', listener);\n  }\n\n  self._counter++;\n\n  return () => {\n    cleanup();\n  };\n}\n\nfunction setError(this: ErrorState<any>, value: any) {\n  const self = this;\n\n  if (self._value !== value) {\n    self._value = value;\n\n    addToBatch(self, value);\n\n    if (value !== undefined) {\n      const parent = self._parent;\n\n      parent.set(undefined, undefined, true);\n\n      if (parent._promise) {\n        parent._promise._reject(value);\n\n        parent._promise = null;\n      }\n    }\n  }\n}\n\nconst getAsyncState = (\n  _commonSet: LoadableState['_commonSet'],\n  options: Omit<LoadableStateOptions, 'load'>,\n  stateInitializer: StateInitializer | undefined,\n  _keys: any[] | undefined,\n  _load?: LoadableStateOptions<any, any, any, any[]>['load'],\n  Control?: LoadableStateOptions<any, any, any>['Control'],\n  _tickStart?: () => void,\n  _tickEnd?: () => void,\n  _parent?: PaginatedStorage<any>\n): AnyAsyncState => {\n  const { isLoaded, reloadIfStale, reloadOnFocus, loadingTimeout } = options;\n\n  const errorCallbacks: ValueChangeCallbacks = new Set();\n\n  const errorState = {\n    _onValueChange: createSubscribe(errorCallbacks),\n    get,\n    set: setError,\n    _parent: undefined!,\n    _value: undefined,\n    _callbacks: errorCallbacks,\n  } as Partial<ErrorState<any>> as ErrorState<any>;\n\n  const stateCallbacks: ValueChangeCallbacks = new Set();\n\n  const state = handleState<LoadableState<any, any, any>>(\n    {\n      _root: undefined!,\n      _isFetchInProgress: false,\n      _isLoadable: true,\n      _counter: 0,\n      _isLoaded: isLoaded || alwaysTrue,\n      _promise: null,\n      _unload: undefined,\n      _value: undefined,\n      _attempt: isLoaded && isLoaded.length > 2 ? 0 : undefined,\n      _reloadIfStale: reloadIfStale\n        ? { _timeout: reloadIfStale, _timeoutId: undefined }\n        : null,\n      _reloadOnFocus: reloadOnFocus\n        ? {\n            _timeout: reloadOnFocus,\n            _timeoutId: undefined,\n            _focusListener: undefined,\n            _isLoadable: false,\n          }\n        : null,\n      _slowLoading: loadingTimeout\n        ? {\n            _timeout: loadingTimeout,\n            _timeoutId: undefined,\n            _callbacks: new Set(),\n          }\n        : null,\n      _keys,\n      _tickEnd: _tickEnd || noop,\n      _tickStart: _tickStart || noop,\n      _parent,\n      get,\n      _callbacks: stateCallbacks,\n      _children: undefined,\n      set,\n      _commonSet,\n      _onValueChange: createSubscribe(stateCallbacks),\n      load: _load! && load,\n      _load,\n      error: errorState,\n      isLoaded: createSimpleState(false),\n      control: undefined!,\n      _subscribeWithError: alwaysNoop,\n      _subscribeWithLoad: _load && alwaysNoop,\n      _valueToggler: 0,\n    },\n    options.value,\n    stateInitializer,\n    _keys\n  );\n\n  if (_load) {\n    state._subscribeWithLoad = createLoadableSubscribe(stateCallbacks, state);\n  }\n\n  state._subscribeWithError = createSubscribeWithError(\n    stateCallbacks,\n    errorCallbacks,\n    state\n  );\n\n  const value = state._value;\n\n  (state as Mutable<typeof state>)._root = state;\n\n  (errorState as Mutable<typeof errorState>)._parent = state;\n\n  if (value !== undefined) {\n    const _isLoaded = isLoaded ? isLoaded(value, undefined, 0) : true;\n\n    state.isLoaded._value = _isLoaded;\n\n    if (_isLoaded && !options.revalidate) {\n      state._isLoadable = false;\n    }\n  }\n\n  if (Control) {\n    (state as Mutable<typeof state>).control = new Control(options, state);\n  }\n\n  return state;\n};\n\nexport default getAsyncState;\n"]}