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 has a couple of key parts, but I think it all makes sense together.
First, I split the code from
middleware/auth.js
out intoutils/labs.js
, so we have a one-size-fits-all utility for finding out if a labs flag is set.Secondly, I had to do a bit of a weird dance in the get helper to be able to depend on this flag in a way that live updates.
The get helper is wrapped in a function that checks the labs flag, if the flag is set, then the get helper is called using
.call
to bind to the originalthis
.If the flag is not set, doing nothing results in 'undefined' being printed out to the page - not ideal. With normal unregistered helpers you get a 500 error printed on screen in the browser and usually also in the server console. In this case, that behaviour is somewhat undesirable.
Therefore, I did a little extra work, setup a 'nice' error message and made it so that this would be output on both the client and server console:
The intention is to be informative and not destructive, in this case. I think that is sane?
issue #5976