1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| 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;
| }
|
|