33 lines
911 B
JavaScript
33 lines
911 B
JavaScript
import {
|
|
__spreadValues
|
|
} from "./chunk.KIILAQWQ.js";
|
|
|
|
// src/internal/watch.ts
|
|
function watch(propertyName, options) {
|
|
const resolvedOptions = __spreadValues({
|
|
waitUntilFirstUpdate: false
|
|
}, options);
|
|
return (proto, decoratedFnName) => {
|
|
const { update } = proto;
|
|
const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
|
|
proto.update = function(changedProps) {
|
|
watchedProperties.forEach((property) => {
|
|
const key = property;
|
|
if (changedProps.has(key)) {
|
|
const oldValue = changedProps.get(key);
|
|
const newValue = this[key];
|
|
if (oldValue !== newValue) {
|
|
if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {
|
|
this[decoratedFnName](oldValue, newValue);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
update.call(this, changedProps);
|
|
};
|
|
};
|
|
}
|
|
|
|
export {
|
|
watch
|
|
};
|