All files / services/api/endpoints definition-utils.ts

0% Statements 0/5
0% Branches 0/2
0% Functions 0/1
0% Lines 0/5

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 34 35 36 37 38 39 40 41 42                                                                                   
/**
 * VersedMiddleware
 * if want to pass to next middleware. Please call next without returning value;
 * if want to intercept and response. Please return a non undefined value.
 *
 * You should take care of the returned value of await next(). And return it directly to allow interception
 */
import { Context } from "@versed/context";
 
export type VersedMiddleware = (ctx: Context, next: Function) => Promise<any>;
export type APIHandler = VersedMiddleware;
export interface APIDefinition {
  summary: string;
  method: string;
  path: string;
  tags?: string[];
  handler: string | APIHandler;
  handlerId?: string;
  securityPolicy?: VersedMiddleware;
  request?: {
    query?: any;
    cookie?: any;
    body?: any;
  };
  response?: any;
}
 
export interface APIErrorResponse {
  message: string;
  code: string;
  status: number;
  data: object;
}
 
export const APIGroup = (groupName: string, apis: APIDefinition[]): APIDefinition[] => {
  for (const api of apis) {
    api.tags = api.tags || [];
    api.tags.push(groupName);
  }
  return apis;
};