diff --git a/packages/express-openapi/index.ts b/packages/express-openapi/index.ts index 635a9295..2a502c83 100644 --- a/packages/express-openapi/index.ts +++ b/packages/express-openapi/index.ts @@ -1,3 +1,4 @@ +import * as core from 'express-serve-static-core'; import { ErrorObject, FormatDefinition, Format } from 'ajv'; import { Application, ErrorRequestHandler, RequestHandler } from 'express'; import OpenAPIFramework, { @@ -13,16 +14,34 @@ const CASE_SENSITIVE_PARAM_PROPERTY = 'x-express-openapi-case-sensitive'; const normalizeQueryParamsMiddleware = require('express-normalize-query-params-middleware'); const loggingPrefix = 'express-openapi'; -export interface OperationFunction extends RequestHandler { +export interface OperationFunction< + P extends Record = core.ParamsDictionary, + ResBody = any, + ReqBody = any, + ReqQuery = core.Query, + Locals extends Record = Record +> extends RequestHandler { apiDoc?: OpenAPI.Operation; } -export interface OperationHandlerArray { +export interface OperationHandlerArray< + P extends Record = core.ParamsDictionary, + ResBody = any, + ReqBody = any, + ReqQuery = core.Query, + Locals extends Record = Record +> { apiDoc?: OpenAPI.Operation; - [index: number]: RequestHandler; + [index: number]: RequestHandler; } -export type Operation = OperationFunction | OperationHandlerArray; +export type Operation< + P extends Record = core.ParamsDictionary, + ResBody = any, + ReqBody = any, + ReqQuery = core.Query, + Locals extends Record = Record +> = OperationFunction | OperationHandlerArray; export interface ExpressOpenAPIArgs extends OpenAPIFrameworkArgs { app: Application;