1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-11 10:10:25 +01:00

feat: simplify lazy.ts (#10951)

This commit is contained in:
Andreas Coroiu 2024-09-13 09:09:45 +02:00 committed by GitHub
parent 023912c53d
commit a1aa9adb48
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,6 +1,7 @@
const NoValue = Symbol("NoValue");
export class Lazy<T> { export class Lazy<T> {
private _value: T | undefined = undefined; private _value: T | typeof NoValue = NoValue;
private _isCreated = false;
constructor(private readonly factory: () => T) {} constructor(private readonly factory: () => T) {}
@ -10,11 +11,10 @@ export class Lazy<T> {
* @returns The value produced by your factory. * @returns The value produced by your factory.
*/ */
get(): T { get(): T {
if (!this._isCreated) { if (this._value === NoValue) {
this._value = this.factory(); return (this._value = this.factory());
this._isCreated = true;
} }
return this._value as T; return this._value;
} }
} }