export class Lazy { #value?: T; #resolver: () => Promise; constructor(resolver: () => Promise) { this.#resolver = resolver; } async value(): Promise { if (!this.#value) { this.#value = await this.#resolver(); } return this.#value; } }