openapi-mock-express-middleware
Version:
Generates express mock-servers from OpenAPI specs
47 lines (46 loc) • 1.72 kB
TypeScript
import { OpenAPIV3 } from 'openapi-types';
import express from 'express';
import { JSF, JSONSchema } from '../utils';
export interface ParamsSchemas {
header: JSONSchema;
query: JSONSchema;
path: JSONSchema;
}
export declare class Operation {
method: string;
pathRegexp: RegExp;
operation: OpenAPIV3.OperationObject;
pathPattern: string;
path: string;
generator: JSF;
securitySchemes: {
[key: string]: OpenAPIV3.SecuritySchemeObject;
} | null;
parentParams: (OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject)[] | null;
constructor({ method, path, operation, securitySchemes, generator, parentParams, }: {
path: string;
method: string;
operation: OpenAPIV3.OperationObject;
generator: JSF;
securitySchemes?: {
[key: string]: OpenAPIV3.SecuritySchemeObject;
};
parentParams?: (OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject)[];
});
getResponseStatus(): number;
getResponseSchema(responseStatus?: number): JSONSchema | null;
getSecurityRequirements(): OpenAPIV3.SecurityRequirementObject[];
getParamsSchemas(): ParamsSchemas;
getBodySchema(contentType: string): JSONSchema | null;
generateResponse(req: express.Request, res: express.Response): express.Response;
}
export declare const createOperation: ({ method, path, operation, generator, securitySchemes, parentParams, }: {
path: string;
method: string;
operation: OpenAPIV3.OperationObject;
generator: JSF;
securitySchemes?: {
[key: string]: OpenAPIV3.SecuritySchemeObject;
};
parentParams?: (OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject)[];
}) => Operation;