clone of repo on github
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

16 lines
283 B

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