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.
Description of Changes
This improves the type safety a bit from #3812.
The core change is that the previous version typed queries based on the typescript type, not the spacetime type. This meant that we allowed queries for incorrect tables, like a table that had the same column names and types, but had a u32 instead of a u64 somewhere.
This still has an issue with allowing results from tables where the rows are reordered, which would actually be a problem, but hopefully that is not too common.
API and ABI breaking changes
This is technically a breaking change, because it changes some type parameters. I don't think people should be relying on these though, so I don't think we should be worried about breaking them.
This would only cause new type errors for apps that are likely to error at runtime anyway.
Expected complexity level and risk
1.5. This should be low risk, since it is just a typing change.
Testing
This has some type checks in
view.test-d.ts, and I've done some manual e2e testing.