opencode/packages/core/src/util/lazy.ts

11 lines
205 B
TypeScript

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
}
}