Early-stage JS messaging refactoring #9
Closed
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 PR starts to standardise the messaging format between the different JS files, with the goal of being able to validate and type messages from cradle to grave, from JS to Swift and back again.
The core idea is that all JS files communicate with the following object:
destination
is used to multiplex the browser runtime events channel, and permit more generic method names.method
is currently general-purpose, but will later be typed, dittoparams
.sessionId
is currently unused.It also:
sessionId
generation, which is stored in and read from localStorageMy approach here has been to try to build in an 'invisible' way, so the extension should work mostly as it did before. Signing wasn't working for me before, so I've been unable to test it properly.
Explicitly not included in this PR:
The above list provides a pretty good roadmap for what I'll be working on this week :)