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 improves session generation and offloads the work from a client-server approach into a client-only approach.
Todos
Session generation
Previously, generating a session would have to go to Hellotext's servers to create a new one. This induced latency to the package's initialization time because it would have to wait until Hellotext replied with the session's token. Now, a session is generated on the client when is not present, this
The new session generation algorithm reuses
crypto.randomUUID()
which has now full support across all major browsers and can safely be assumed available everywhere.Refactors
Moves session initialization code from
Hellotext
into a dedicatedSession
model that is responsible for setting the session, as well as dispatching events to subscribers. This solves a race-condition if a user had accessedHellotext.session
in aon-session
callback because the subscriber would have been notified before Hellotext.session being set.