Spaces:
Paused
Paused
| export default function defineLazyProperty(object, propertyName, valueGetter) { | |
| const define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true}); | |
| Object.defineProperty(object, propertyName, { | |
| configurable: true, | |
| enumerable: true, | |
| get() { | |
| const result = valueGetter(); | |
| define(result); | |
| return result; | |
| }, | |
| set(value) { | |
| define(value); | |
| } | |
| }); | |
| return object; | |
| } | |