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
feat: createServerValue
#1889
base: next
Are you sure you want to change the base?
feat: createServerValue
#1889
Conversation
|
export function createServerValue<T>(cb: () => T): T { | ||
const ctx = sharedConfig.context; | ||
// This might be fun specially if the value is a Promise | ||
// but of course, the only way they can translate the Promise |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what do you mean by "translte the Promise"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
convert the Promise into something the components and the reactivity system can understand
Summary
This is a PoC for exploring the new serialization method. This PR adds a new primitive called
createServerValue
which allows users to instanciate server-side values and load those exact values on hydration. This is like resumability for babies.A great use case of this would be:
By default,
createServerValue
should be able to serialize everything thecreateResource
is capable of (as of course they share the same serializer), with the exception ofcreateServerValue
having non-blocking serialization assuming that it produces aPromise
. This is, of course, is up for debate.This might also be in conflict with the upcoming async primitive.
How did you test this change?