luisherranz / deepsignal

DeepSignal 🧶 - Preact signals, but using regular JavaScript objects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

deleting a key does not trigger effects

bigmistqke opened this issue · comments

example:

const sign = deepSignal<{ key?: string }>({  });

setTimeout(() => {
  sign.key = 'value';
}, 1000);

setTimeout(() => {
  delete sign.key;
}, 2000);

effect(() => {
  console.log('sign', sign.key);
});

expected behavior:

  1. log undefined
  2. after 1 second log value
  3. after 2 seconds log undefined

current behavior:

  1. log undefined
  2. after 1 second log value

see for an example with solid's createMutable

a fix in userland (and mb inspiration for implementation):

sign.key = undefined;
delete sign.key;

Thanks! I opened a PR to add support for delete:

Released as deepsignal@1.3.1.

@bigmistqke could you please test it out and see if everything works as expected now?

@luisherranz awesome! thanks for notifying me. will let u know asap.