index.js (429B)
1 export default function defineLazyProperty(object, propertyName, valueGetter) { 2 const define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true}); 3 4 Object.defineProperty(object, propertyName, { 5 configurable: true, 6 enumerable: true, 7 get() { 8 const result = valueGetter(); 9 define(result); 10 return result; 11 }, 12 set(value) { 13 define(value); 14 } 15 }); 16 17 return object; 18 }