summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src/util/lazy.ts
blob: 935ebe0f9549c82959fd3c8cdd4f4af6c44def05 (plain)
1
2
3
4
5
6
7
8
9
10
11
export function lazy<T>(fn: () => T) {
  let value: T | undefined
  let loaded = false

  return (): T => {
    if (loaded) return value as T
    loaded = true
    value = fn()
    return value as T
  }
}