UNPKG

svelte

Version:

Cybernetically enhanced web apps

26 lines (22 loc) 731 B
/** @import { Derived, Signal } from '#client' */ import { CLEAN, CONNECTED, DIRTY, MAYBE_DIRTY } from '#client/constants'; const STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN); /** * @param {Signal} signal * @param {number} status */ export function set_signal_status(signal, status) { signal.f = (signal.f & STATUS_MASK) | status; } /** * Set a derived's status to CLEAN or MAYBE_DIRTY based on its connection state. * @param {Derived} derived */ export function update_derived_status(derived) { // Only mark as MAYBE_DIRTY if disconnected and has dependencies. if ((derived.f & CONNECTED) !== 0 || derived.deps === null) { set_signal_status(derived, CLEAN); } else { set_signal_status(derived, MAYBE_DIRTY); } }