9 lines
295 B
TypeScript
9 lines
295 B
TypeScript
/**
|
|
* Returns a memoized factory function that constructs the value on first call.
|
|
* Used to defer Zod schema construction from module init time to first access.
|
|
*/
|
|
export function lazySchema<T>(factory: () => T): () => T {
|
|
let cached: T | undefined
|
|
return () => (cached ??= factory())
|
|
}
|