-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
chore(workflows-sdk, utils): Prevent unnecessary serialization #13413
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
chore(workflows-sdk, utils): Prevent unnecessary serialization #13413
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub.
7 Skipped Deployments
|
🦋 Changeset detectedLatest commit: 752c278 The changes in this PR will be included in the next version bump. This PR includes changesets to release 71 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
* @returns | ||
*/ | ||
export function parseStringifyIfNecessary(result: unknown) { | ||
if (typeof result !== "object") { |
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.
self-review: I purpusfully do not use isObject
because I want to include Map, Set, Date etc
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.
again 🐐
RESOLVES CORE-1154 (here some explanation why only doing that)
What
Workflow are heavely relying on the value resolution, which always parse/stringify data to prevent shared references. But in a lot of cases, these value can be primitive only and in that case there is no need to perform such action
It happen to be more than 3X faster to do nothing instead of extraneous operation plus it will have less impact on the memory and GC.