feat: load context from global variable #87
Merged
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.
Which problem is this pull request solving?
Currently, the client is loading the context from an environment variable called
NETLIFY_BLOBS_CONTEXT
, so both serverless functions and edge functions need to set the updated context on each request, by settingprocess.env.NETLIFY_BLOBS_CONTEXT
in Node.js and by callingDeno.env.set()
in Deno.I wanted to see if there was any performance penalty in calling
Deno.env.set()
versus just setting a global variable, so I ran this benchmark and ran it a few times:These are the results I'm seeing:
I'm consistently seeing the environment variable set being ~20x slower than the global variable equivalent. In an environment where every millisecond counts, I think we should try to optimise this as best as we can.
So in this PR I'm making it possible for the client to read the context from a
netlifyBlobsContext
environment variable before trying to read it from an environment variable.