Files
tf_code/packages/opencode/src/util/lazy.ts
Dax 6d95f0d14c sqlite again (#10597)
Co-authored-by: Github Action <action@github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: Brendan Allan <git@brendonovich.dev>
2026-02-14 04:19:02 +00:00

24 lines
410 B
TypeScript

export function lazy<T>(fn: () => T) {
let value: T | undefined
let loaded = false
const result = (): T => {
if (loaded) return value as T
try {
value = fn()
loaded = true
return value as T
} catch (e) {
// Don't mark as loaded if initialization failed
throw e
}
}
result.reset = () => {
loaded = false
value = undefined
}
return result
}