CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-openapi-types

TypeScript type definitions for OpenAPI documents across all specification versions.

83

0.92x
Overview
Eval results
Files

generic-types.mddocs/

Generic OpenAPI Types

Cross-version union types for building version-agnostic OpenAPI tools and parsers. These types enable libraries to work with multiple OpenAPI specification versions without requiring version-specific handling.

Capabilities

Document Type

Union type representing any OpenAPI document across all supported versions.

/**
 * Generic OpenAPI document type supporting all specification versions
 * @template T - Extension object type for custom properties
 */
type Document<T extends {} = {}> = 
  | OpenAPIV2.Document<T>
  | OpenAPIV3.Document<T>
  | OpenAPIV3_1.Document<T>;

Operation Type

Union type representing any OpenAPI operation object across all supported versions.

/**
 * Generic OpenAPI operation type supporting all specification versions
 * @template T - Extension object type for custom properties
 */
type Operation<T extends {} = {}> =
  | OpenAPIV2.OperationObject<T>
  | OpenAPIV3.OperationObject<T>
  | OpenAPIV3_1.OperationObject<T>;

Parameter Type

Union type representing any OpenAPI parameter across all supported versions.

/**
 * Generic OpenAPI parameter type supporting all specification versions
 */
type Parameter =
  | OpenAPIV3_1.ReferenceObject
  | OpenAPIV3_1.ParameterObject
  | OpenAPIV3.ReferenceObject
  | OpenAPIV3.ParameterObject
  | OpenAPIV2.ReferenceObject
  | OpenAPIV2.Parameter;

Parameters Type

Union type representing parameter arrays across all supported versions.

/**
 * Generic OpenAPI parameters array type supporting all specification versions
 */
type Parameters =
  | (OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.ParameterObject)[]
  | (OpenAPIV3.ReferenceObject | OpenAPIV3.ParameterObject)[]
  | (OpenAPIV2.ReferenceObject | OpenAPIV2.Parameter)[];

Request Interface

Generic request object structure for OpenAPI request handling.

/**
 * Generic request interface for OpenAPI request processing
 */
interface Request {
  /** Request body data */
  body?: any;
  /** Request headers object */
  headers?: object;
  /** Path parameters object */
  params?: object;
  /** Query parameters object */
  query?: object;
}

Usage Examples:

import { OpenAPI } from "openapi-types";

// Version-agnostic document processing
function getDocumentTitle(doc: OpenAPI.Document): string {
  return doc.info.title;
}

// Version-agnostic operation processing
function getOperationId(operation: OpenAPI.Operation): string | undefined {
  return operation.operationId;
}

// Generic parameter validation
function validateParameter(param: OpenAPI.Parameter): boolean {
  // Handle different parameter formats across versions
  if ('$ref' in param) {
    return true; // Reference object
  }
  return param.name != null && param.in != null;
}

// Request processing
function processRequest(req: OpenAPI.Request) {
  console.log('Body:', req.body);
  console.log('Headers:', req.headers);
  console.log('Params:', req.params);
  console.log('Query:', req.query);
}

Install with Tessl CLI

npx tessl i tessl/npm-openapi-types

docs

generic-types.md

index.md

json-schema.md

openapi-v2.md

openapi-v3_1.md

openapi-v3.md

tile.json