function resolveRouteOpts()

in src/yaral.ts [219:256]


    function resolveRouteOpts(
      req: Request,
    ): {
      enabled: boolean;
      buckets: string[];
      exclude: (req: Request) => boolean;
    } {
      const routeOpts = req.route.settings.plugins.yaral;

      const opts = {
        enabled: true,
        buckets: <string[]>[],
        exclude: (_req: Request) => false,
      };
      if (!routeOpts) {
        // do nothing
      } else if (typeof routeOpts === 'string') {
        // specifying bucket as string
        opts.buckets = [routeOpts];
      } else if (Array.isArray(routeOpts)) {
        // specifying array of buckets
        opts.buckets = routeOpts;
      } else {
        // providing a literal object
        Object.assign(opts, routeOpts);
        if (typeof opts.buckets === 'string') {
          opts.buckets = [opts.buckets];
        }
      }

      if (opts.enabled) {
        opts.buckets = opts.buckets.concat(options.default);
        opts.enabled =
          !(options.exclude(req) || opts.exclude(req)) &&
          opts.buckets.length + options.default.length > 0;
      }
      return opts;
    }