Skip to content

⬅️ Back to Table of Contents

📄 refAutoReset

📊 Analysis Summary

Metric Count
🔧 Functions 2
📦 Imports 6
📊 Variables & Constants 1
📑 Type Aliases 1

📚 Table of Contents

🛠️ File Location:

📂 packages/shared/refAutoReset/index.ts

📦 Imports

Name Source
MaybeRefOrGetter vue
Ref vue
TimerHandle ../utils
customRef vue
toValue vue
tryOnScopeDispose ../tryOnScopeDispose

Variables & Constants

Name Type Kind Value Exported
autoResetRef <T>(defaultValue: MaybeRefOrGetter<T>... const refAutoReset

Functions

refAutoReset(defaultValue: MaybeRefOrGetter<T>, afterMs: MaybeRefOrGetter<number>): RefAutoResetReturn<T>

Create a ref which will be reset to the default value after some time.

Parameters:

  • defaultValue any: The value which will be set.
  • afterMs any: A zero-or-greater delay in milliseconds.

See: https://vueuse.org/refAutoReset

Raw JSDoc
/**
 * Create a ref which will be reset to the default value after some time.
 *
 * @see https://vueuse.org/refAutoReset
 * @param defaultValue The value which will be set.
 * @param afterMs      A zero-or-greater delay in milliseconds.
 */

Calls:

  • customRef (from vue)
  • toValue (from vue)
  • setTimeout
  • trigger
  • tryOnScopeDispose (from ../tryOnScopeDispose)
  • clearTimeout
  • track
  • resetAfter
Code
export function refAutoReset<T>(defaultValue: MaybeRefOrGetter<T>, afterMs: MaybeRefOrGetter<number> = 10000): RefAutoResetReturn<T> {
  return customRef<T>((track, trigger) => {
    let value: T = toValue(defaultValue)
    let timer: TimerHandle

    const resetAfter = () =>
      setTimeout(() => {
        value = toValue(defaultValue)
        trigger()
      }, toValue(afterMs))

    tryOnScopeDispose(() => {
      clearTimeout(timer)
    })

    return {
      get() {
        track()
        return value
      },
      set(newValue) {
        value = newValue
        trigger()

        clearTimeout(timer)
        timer = resetAfter()
      },
    }
  })
}

Internal helpers

Declared inside another function in this file.

resetAfter(): NodeJS.Timeout

Returns: NodeJS.Timeout

Calls:

  • setTimeout
Code
() =>
      setTimeout(() => {
        value = toValue(defaultValue)
        trigger()
      }, toValue(afterMs))

Type Aliases

RefAutoResetReturn<T = any>

type RefAutoResetReturn<T = any> = Ref<T>;

Generated by Syntax Scribe