fix: add warning when you read object property within attachments in legacy mode #15948
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a warning when you are in legacy mode and you set the expression of an attachment reading from an object.
if you have a component like this
and you don't realise you are in legacy mode the attachment will rerun every time you change count because you are updating
state.count
and in legacy mode that invalidate the wholestate
object (hence alsostate.attachment
which means the attachment reruns).While the above example is blatantly in legacy mode this is more subtle.
This is up for discussion because i wonder if this warning could be too intrusive...an alternative @dummdidumm suggested is that we could opt in to runes mode if you use
@attach
...however this would be a breaking change (although probably not breaking for a lot of people) and since it's a new feature we can just label it as a bug. This would also hinder the adoption of attachments a bit and it would be cool if we could use them in legacy mode.WDYT?
Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.packages/svelte/src
, add a changeset (npx changeset
).Tests and linting
pnpm test
and lint the project withpnpm lint