Always handle nullable/optional state explicitly before executing logic that can mutate state, clear user input, or drop data. Use early returns or dedicated “disabled” props driven by well-defined nullable/flag conditions, and preserve intentional empty values instead of treating all falsy/empty inputs as “missing.”
How to apply:
Example pattern:
function onUpdate({ currentSnapshot, updateMessage }: any) {
// Explicit null/flag guard
if (!currentSnapshot?.session || currentSnapshot.session.working_dir_missing === true) {
return; // block side effects when required data is missing
}
updateMessage();
}
function stripEmptySlots(params: Record<string, any>) {
for (const [key, value] of Object.entries(params)) {
const isEmptyObject =
value && typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length === 0;
if (isEmptyObject) delete params[key];
// Note: empty arrays are preserved
}
}