main funcions fixes
This commit is contained in:
42
desktop-operator/node_modules/builder-util-runtime/out/MemoLazy.js
generated
vendored
Normal file
42
desktop-operator/node_modules/builder-util-runtime/out/MemoLazy.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MemoLazy = void 0;
|
||||
class MemoLazy {
|
||||
constructor(selector, creator) {
|
||||
this.selector = selector;
|
||||
this.creator = creator;
|
||||
this.selected = undefined;
|
||||
this._value = undefined;
|
||||
}
|
||||
get hasValue() {
|
||||
return this._value !== undefined;
|
||||
}
|
||||
get value() {
|
||||
const selected = this.selector();
|
||||
if (this._value !== undefined && equals(this.selected, selected)) {
|
||||
// value exists and selected hasn't changed, so return the cached value
|
||||
return this._value;
|
||||
}
|
||||
this.selected = selected;
|
||||
const result = this.creator(selected);
|
||||
this.value = result;
|
||||
return result;
|
||||
}
|
||||
set value(value) {
|
||||
this._value = value;
|
||||
}
|
||||
}
|
||||
exports.MemoLazy = MemoLazy;
|
||||
function equals(firstValue, secondValue) {
|
||||
const isFirstObject = typeof firstValue === "object" && firstValue !== null;
|
||||
const isSecondObject = typeof secondValue === "object" && secondValue !== null;
|
||||
// do a shallow comparison of objects, arrays etc.
|
||||
if (isFirstObject && isSecondObject) {
|
||||
const keys1 = Object.keys(firstValue);
|
||||
const keys2 = Object.keys(secondValue);
|
||||
return keys1.length === keys2.length && keys1.every((key) => equals(firstValue[key], secondValue[key]));
|
||||
}
|
||||
// otherwise just compare the values directly
|
||||
return firstValue === secondValue;
|
||||
}
|
||||
//# sourceMappingURL=MemoLazy.js.map
|
||||
Reference in New Issue
Block a user