jsketcher/modules/lstream/utils.js
2018-12-20 00:09:07 -08:00

18 lines
No EOL
437 B
JavaScript

export const NOT_INITIALIZED = Object.freeze({});
export function propsChangeTracker(props, onChange) {
const values = props.map(() => NOT_INITIALIZED);
return function(obj) {
for (let i = 0; i < props.length; i++) {
const prop = props[i];
const prevValue = values[i];
const currValue = obj[prop];
if (prevValue !== currValue) {
onChange(obj, prop, currValue, prevValue);
}
}
}
}