Noir::JSOptionGate
How a helper's refusal depends on what its caller passes. umami's
parseRequest(request, schema, options?) refuses under
if (!options?.skipAuth && !error); whether a given call is refused
depends on that call's third argument. Every if still open around the
refusal is read for references to the helper's own parameters, and each
reference becomes a Gate: the refusal runs only when that argument (or
its key) has the value runs_when. A local (!error) is not a parameter
and is not read.
Constants
The request and its peers: a branch on them depends on the caller, not on an option the route chose.
Instance methods
The gates the if conditions conditions put on a refusal.
:skipped when the call's args turn the refusal off, :unknown when a
value it depends on is not a literal ({ skipAuth: isPublic }), :runs
otherwise. lookup gives a const's initializer in the caller.
An option in an || cannot turn the refusal off by itself
(!options?.skipAuth || !isPublicSchema(schema)): that is :unknown.
ponytail: an || is not evaluated, so !skipAuth || forceAuth called
with both literal is still :unknown; evaluate it if a route needs that.