export async function fetchActions()

in src/policy.ts [300:331]


export async function fetchActions(context: RecaptchaContext, req: EdgeRequest): Promise<action.Action[]> {
  let actions: action.Action[] = [];
  try {
    const localAssessment = await localPolicyAssessment(context, req);
    if (localAssessment === "recaptcha-required") {
      context.log("debug", "no local match, calling reCAPTCHA");
      actions = await evaluatePolicyAssessment(context, req);
    } else {
      context.log("debug", "local assessment succeeded");
      actions = localAssessment;
    }
  } catch (reason) {
    context.logException(reason);
    actions = [action.createAllowAction()];
  }

  if (context.config.sessionJsInjectPath) {
    const patterns = context.config.sessionJsInjectPath?.split(";");
    const url = new URL(req.url);
    for (const pattern of patterns) {
      if (picomatch.isMatch(url.pathname, pattern)) {
        context.debug_trace.inject_js_match = true;
        context.log("debug", "Request matching session JS inject pattern: " + pattern);
        // We don't need to check if it's already there, since policies currently
        // can't insert this action.
        actions.unshift(action.createInjectJsAction());
        break;
      }
    }
  }
  return actions;
}