-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle unavailable files with no storage/peers better #153
Comments
Ah, that should be in already. There is a passing test in there right now, but maybe it's not actually testing what I think it is. |
Just spotted it has a network adapter in that test. Will adjust and see what I can sort |
OK, that passes too. What situation are you seeing this in? |
In here: https://github.com/automerge/automerge.github.io/blob/repo-updates/docs/quickstart.md I had a version with no StorageAdapter -- if you reload the page then the document no longer exists to load, but if you called change() you'd get the !isReady() error. Maybe the issue is that if the document is no bueno, we should return null instead of the change function? Maybe it's just a matter of updating what error message is reported? |
So in that situation, the |
Must be the change() yeah
On Thu, Aug 24, 2023 at 15:38 Alex Currie-Clark ***@***.***> wrote:
So in that situation, the unavailable event is firing and handle.doc()
would return undefined. It's just that if you don't look for any of those
signs, then you get a "not ready" error when you try to change?
—
Reply to this email directly, view it on GitHub
<#153 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAAWQCVRO5SE7AP73CCAI3XW7JVTANCNFSM6AAAAAA35HIA6U>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
--
Peter van Hardenberg
"Everything was beautiful, and nothing hurt."—Kurt Vonnegut
|
Been thinking about this a little today. It kind of goes back to my initial argument about how a user might access a document. There should always be a check done to make sure that the handle contains a valid document before you try to read from it or change it. At the moment that would be: const handle = repo.find(id);
const doc = await handle.doc();
if (doc) {
// do things with the handle
} else {
// there is an error with the document
console.log(handle.state)
} There is also My instinct is that while reading a non-ready document shouldn't throw, changing a non-ready document probably should. Essentially, the rule should always be "check the document is ready before doing anything with it". |
If you try to open a valid documentId that wasn't saved anywhere (and you're not connected to anyone) it should fail gracefully instead of hanging on isReady().
The text was updated successfully, but these errors were encountered: