All files / lib/hooks/authorize authorize.hook.ts

100% Statements 11/11
100% Branches 7/7
100% Functions 2/2
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 341x   1x 1x 1x                   1x   1x 183x 533x         58x     475x   475x          
import { shouldSkip } from "feathers-utils";
 
import { makeOptions } from "./authorize.hook.utils";
import authorizeAfter from "./authorize.hook.after";
import authorizeBefore from "./authorize.hook.before";
 
import {
  HookContext
} from "@feathersjs/feathers";
 
import {
  AuthorizeHookOptions
} from "../../types";
 
const HOOKNAME = "authorize";
 
export default (options?: Partial<AuthorizeHookOptions>): ((context: HookContext) => Promise<HookContext>) => {
  return async (context: HookContext): Promise<HookContext> => {
    if (
      shouldSkip(HOOKNAME, context) ||
      !context.params ||
      context.type === "error"
    ) {
      return context;
    }
 
    const fullOptions = makeOptions(context.app, options);
    
    return (context.type === "before") 
      ? await authorizeBefore(fullOptions)(context) 
      : await authorizeAfter(fullOptions)(context);
  };
};