@tsdotnet/lazy
Version:
Lazy<T> and ResettableLazy<T> class for simplifying lazy initialization.
32 lines (29 loc) • 846 B
JavaScript
import ResolverBase from './ResolverBase.js';
/*!
* @author electricessence / https://github.com/electricessence/
* @license MIT
*/
class Lazy extends ResolverBase {
constructor(valueFactory, allowReset = false) {
super(valueFactory, allowReset);
}
get value() {
return this.getValue();
}
get valueReference() {
return this._resolveState.value;
}
valueEquals(other) {
if (this === other)
return true;
const val = this.value, o = other.value;
if (val === o)
return true;
return typeof val === 'number' && typeof o === 'number' && isNaN(val) && isNaN(o);
}
static create(valueFactory, allowReset = false) {
return new Lazy(valueFactory, allowReset);
}
}
export { Lazy as default };
//# sourceMappingURL=Lazy.js.map