"use strict";
|
|
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
class LazyValue {
|
|
constructor(_getValue) {
|
|
this._getValue = _getValue;
|
|
this._hasValue = false;
|
|
}
|
|
get value() {
|
|
if (!this._hasValue) {
|
|
this._hasValue = true;
|
|
this._value = this._getValue();
|
|
}
|
|
return this._value;
|
|
}
|
|
get hasValue() {
|
|
return this._hasValue;
|
|
}
|
|
map(f) {
|
|
return new LazyValue(() => f(this.value));
|
|
}
|
|
}
|
|
function lazy(getValue) {
|
|
return new LazyValue(getValue);
|
|
}
|
|
exports.lazy = lazy;
|